public override void CaseAVariableDefinition(AVariableDefinition node) { // create the variable in the data segment DataSegmentElement elm = new DataSegmentElement(node.GetName().Text, TypeEnvironment.GetVxcTypeOf(node.GetTypeSpecifier().GetType())); mOutputFile.mDataSegment.Add(elm); // create initializer expression in code segment. PExpression pexp = node.GetInit(); if (pexp != null) { long value = TypeEnvironment.GetValueOf(pexp); VariableInitializerExpression exp = new VariableInitializerExpression(value, elm.Type, elm.Identifier); mOutputFile.AddTemplate("init", exp); } base.CaseAVariableDefinition(node); }
public void GetOrDefault_ShouldThrowExceptionIfInvalidKeyIsGiven(string keyName) { var typeEnv = new TypeEnvironment(); Assert.Throws <ArgumentException>(() => typeEnv.GetValueOf(keyName)); }
public override void CaseAPortDefinition(APortDefinition node) { if (node.GetInit() != null) { CodeSegmentElement port = new PortDeclaration(Convert.ToInt32(node.GetAdress().Text), node.GetName().Text, TypeEnvironment.GetValueOf(node.GetInit())); mOutputFile.AddTemplate("init", port); } base.CaseAPortDefinition(node); }