Beispiel #1
0
        public override ASTNode VisitMain([NotNull] p4Parser.MainContext context)
        {
            ASTNode returntype = new TypeAstNode(context.VOID().Symbol);
            ASTNode functionId = new IdAstNode(context.Main().Symbol, SALType.Types[returntype.Token.Text]);
            ASTNode @params    = new ParameterListAstNode(new ASTNode[] {}, null);

            return(new FunctionDeclarationAstNode(functionId, @params, Visit(context.block()), context.Function().Symbol));
        }
Beispiel #2
0
 public override InoTypeEnum Visit(ParameterListAstNode node)
 {
     IsParam = true;
     foreach (ASTNode param in node.Children)
     {
         if (param is IdAstNode id)
         {
             ParamNodes.Add(id);
         }
         Visit(param);
     }
     IsParam = false;
     return(InoTypeEnum.undefined);
 }
Beispiel #3
0
        public override string Visit(ParameterListAstNode node)
        {
            string parameters = "";

            if (node.Children.Count == 1)
            {
                parameters += Visit(node.Children[0]);
            }
            else
            {
                foreach (ASTNode child in node.Children)
                {
                    if (child != node.Children[0])
                    {
                        parameters += ", " + Visit(child);
                    }
                    else
                    {
                        parameters += Visit(child);
                    }
                }
            }
            return(parameters);
        }