org.problets.domain.model.language
Class VBLanguage

java.lang.Object
  extended by org.problets.domain.model.language.Language
      extended by org.problets.domain.model.language.VBLanguage

public class VBLanguage
extends Language

Provides VB-specific details such as the available data types

Author:
Amruth Kumar

Constructor Summary
VBLanguage()
           
 
Method Summary
 java.lang.String getCaseHeader(java.lang.String value)
          Returns a case statement for the switch
 java.lang.String getDefaultDataType()
          The data type used for random number generation is an invalid data type has been specified
 java.lang.String getDefaultHeader()
          Returns the default case of switch
 Equals getEqualsOperator()
          Returns the Equals operator for this language
 ForLoopModel getForLoop(ActivationRecord parent, HeapModel heap, java.lang.String template, int scopeType)
          Returns the for loop model for the current language
 java.lang.String getIfHeader(java.lang.String condition)
          Returns the header of an if statement
 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
 NotEquals getNotEqualsOperator()
          Returns the Equals 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 getSignedTypes(java.util.Vector optionVector)
          Returns the possible signed types for the various languages
 java.lang.String getStatementDelimiter()
          Returns the delimiter for statements in the language
 java.lang.String getSwitchHeader(java.lang.String condition)
          Returns the switch statement header
 void getUnsignedTypes(java.util.Vector optionVector)
          Returns the possible unsigned types for the various languages
 java.lang.String getWhileHeader(java.lang.String condition)
          Returns the header of a while statement
 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, getNumDataTypes, isValidDataType, shouldExplainCoercionInAssignment
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VBLanguage

public VBLanguage()
Method Detail

getIntegerTypes

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

Overrides:
getIntegerTypes in class Language

getSignedTypes

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

Overrides:
getSignedTypes 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

getDefaultDataType

public java.lang.String getDefaultDataType()
The data type used for random number generation is an invalid data type has been specified

Overrides:
getDefaultDataType 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 VB, and false otherwise

getEqualsOperator

public Equals getEqualsOperator()
Returns the Equals operator for this language

Overrides:
getEqualsOperator in class Language

getNotEqualsOperator

public NotEquals getNotEqualsOperator()
Returns the Equals operator for this language

Overrides:
getNotEqualsOperator in class Language

getModulusOperator

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

Specified by:
getModulusOperator in class Language

getStatementDelimiter

public java.lang.String getStatementDelimiter()
Returns the delimiter for statements in the language

Overrides:
getStatementDelimiter 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

getSwitchHeader

public java.lang.String getSwitchHeader(java.lang.String condition)
Returns the switch statement header

Overrides:
getSwitchHeader in class Language

getCaseHeader

public java.lang.String getCaseHeader(java.lang.String value)
Returns a case statement for the switch

Overrides:
getCaseHeader in class Language

getDefaultHeader

public java.lang.String getDefaultHeader()
Returns the default case of switch

Overrides:
getDefaultHeader in class Language

getWhileHeader

public java.lang.String getWhileHeader(java.lang.String condition)
Returns the header of a while statement

Overrides:
getWhileHeader in class Language

getIfHeader

public java.lang.String getIfHeader(java.lang.String condition)
Returns the header of an if statement

Overrides:
getIfHeader in class Language

getForLoop

public ForLoopModel getForLoop(ActivationRecord parent,
                               HeapModel heap,
                               java.lang.String template,
                               int scopeType)
Returns the for loop model for the current language

Overrides:
getForLoop 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)