Example #1
0
 public override void Visit(VariableDclNode node)
 {
     _symbolTable.SetCurrentNode(node);
     VisitChildren(node);
     if (node.Children.Count > 0)
     {
         CheckAllowedCast(node.Type_enum, node.Children[0].Type_enum);
     }
 }
 public override void Visit(VariableDclNode node)
 {
     ProgramCode.Append(node.Type);
     ProgramCode.Append($" {node.Name}");
     if (node.HasChildren)
     {
         ProgramCode.Append(" = ");
         VisitChildren(node);
     }
     ProgramCode.Append(";\n");
 }
Example #3
0
        public override AbstractNode VisitVariableDcl([NotNull] GiraphParser.VariableDclContext context)
        {
            VariableDclNode VariableNode = new VariableDclNode(context.Start.Line, context.Start.Column);

            VariableNode.Type = context.TYPE().GetText();
            VariableNode.Name = context.variable().GetText();
            if (context.EQUALS() != null)
            {
                VariableNode.AdoptChildren(Visit(context.boolCompOrExp()));
            }
            return(VariableNode);
        }
        //All the visit stuff-----------------------------------------
        public override void Visit(VariableDclNode node)
        {
            var name = node.Name;

            VisitChildren(node);
            SymbolTable.SetCurrentNode(node);
            if (CheckAlreadyDeclared(node.Name))
            {
                SymbolTable.EnterSymbol(node.Name, node.Type_enum);
            }
            if (node.Children.Count > 0)
            {
                SymbolTable.SetAssigned(node.Name);
            }
        }
Example #5
0
        public override void Visit(VariableDclNode node)
        {
            var OldStringbuilder = _currentStringBuilder;

            if (node.Global)
            {
                _currentStringBuilder = Global;
            }
            _currentStringBuilder.Append("\n");

            if (node.Global)
            {
                _currentStringBuilder.Append("public static ");
            }

            _currentStringBuilder.Append(ResolveTypeToCS(node.Type_enum) + " ");
            _currentStringBuilder.Append(HandleCSharpKeywords(node.Name));
            if (node.Children.Count > 0)
            {
                _currentStringBuilder.Append(" = ");
                foreach (var item in node.Children)
                {
                    bool tester = item is ExpressionNode expNode && expNode.hasparentheses;
                    if (tester)
                    {
                        _currentStringBuilder.Append("(");
                    }

                    item.Accept(this);
                    if (tester)
                    {
                        _currentStringBuilder.Append(")");
                    }
                }
            }
            _currentStringBuilder.Append(";\n");
            _currentStringBuilder = OldStringbuilder;
        }
Example #6
0
 public abstract void Visit(VariableDclNode node);