org.problets.domain.model.language
Class CLanguage

java.lang.Object
  extended by org.problets.domain.model.language.Language
      extended by org.problets.domain.model.language.CLanguage
Direct Known Subclasses:
CPPLanguage

public class CLanguage
extends Language

Provides C-specific details such as the available data types

Author:
Amruth Kumar

Constructor Summary
CLanguage()
           
 
Method Summary
 void getIntegerTypes(java.util.Vector optionVector)
          Returns the possible integer types for the various languages
 int getMetaDataType(java.lang.String dataType)
          Returns the language-neutral meta data type (integer) corresponding to the language-specific string
 BaseModulus getModulusOperator()
          Returns the Modulus operator for this language
 java.lang.String getPrintString(java.lang.String printedValue, java.lang.String dataType)
          Returns the syntax for printing printedValue in the current language
 Program getProgram(ActivationRecord parentActivationRecord, HeapModel heap, java.lang.String template)
          Returns a program object for the given language
 void getRealTypes(java.util.Vector optionVector)
          Returns the possible real types for the various languages
 void getUnsignedTypes(java.util.Vector optionVector)
          Returns the possible unsigned types for the various languages
 boolean hasUnsignedType()
          Returns whether unsigned data type exists in the language
 boolean isIntegerType(java.lang.String dataType)
          Returns whether dataType is of integer type in the language
 boolean isRealType(java.lang.String dataType)
          Returns whether dataType is of real type in the language
static void main(java.lang.String[] args)
           
 Value typeCompatibleAssign(Assignable left, Value right, boolean isCompoundOperator)
          Returns true if right value can be assigned to the left variable, and false otherwise
 
Methods inherited from class org.problets.domain.model.language.Language
getAllDataTypes, getCaseHeader, getDefaultDataType, getDefaultHeader, getEqualsOperator, getForLoop, getIfHeader, getNotEqualsOperator, getNumDataTypes, getSignedTypes, getStatementDelimiter, getSwitchHeader, getWhileHeader, isValidDataType, shouldExplainCoercionInAssignment
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CLanguage

public CLanguage()
Method Detail

getIntegerTypes

public void getIntegerTypes(java.util.Vector optionVector)
Returns the possible integer types for the various languages

Overrides:
getIntegerTypes in class Language

hasUnsignedType

public boolean hasUnsignedType()
Returns whether unsigned data type exists in the language

Overrides:
hasUnsignedType in class Language

getUnsignedTypes

public void getUnsignedTypes(java.util.Vector optionVector)
Returns the possible unsigned types for the various languages

Overrides:
getUnsignedTypes in class Language

getRealTypes

public void getRealTypes(java.util.Vector optionVector)
Returns the possible real types for the various languages

Overrides:
getRealTypes in class Language

getMetaDataType

public int getMetaDataType(java.lang.String dataType)
Returns the language-neutral meta data type (integer) corresponding to the language-specific string

Specified by:
getMetaDataType in class Language

isIntegerType

public boolean isIntegerType(java.lang.String dataType)
Returns whether dataType is of integer type in the language

Specified by:
isIntegerType in class Language
Parameters:
dataType - String which will be checked against integer types for the language

isRealType

public boolean isRealType(java.lang.String dataType)
Returns whether dataType is of real type in the language

Specified by:
isRealType in class Language
Parameters:
dataType - String which will be checked against real types for the language

typeCompatibleAssign

public Value typeCompatibleAssign(Assignable left,
                                  Value right,
                                  boolean isCompoundOperator)
Returns true if right value can be assigned to the left variable, and false otherwise

Overrides:
typeCompatibleAssign in class Language
Parameters:
left - Assignable variable/expression
right - Value assigned to left variable/expression
Returns:
True if right value can be assigned to the left variable/expression in C/C++, and false otherwise

getModulusOperator

public BaseModulus getModulusOperator()
Returns the Modulus operator for this language

Specified by:
getModulusOperator in class Language

getPrintString

public java.lang.String getPrintString(java.lang.String printedValue,
                                       java.lang.String dataType)
Returns the syntax for printing printedValue in the current language

Overrides:
getPrintString in class Language

getProgram

public Program getProgram(ActivationRecord parentActivationRecord,
                          HeapModel heap,
                          java.lang.String template)
Returns a program object for the given language

Overrides:
getProgram in class Language

main

public static void main(java.lang.String[] args)