コード例 #1
0
        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);
        }
コード例 #2
0
        public void GetOrDefault_ShouldThrowExceptionIfInvalidKeyIsGiven(string keyName)
        {
            var typeEnv = new TypeEnvironment();

            Assert.Throws <ArgumentException>(() => typeEnv.GetValueOf(keyName));
        }
コード例 #3
0
 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);
 }