public override bool Visit(AstArgumentDef node)
 {
     ErrorIfIsNull(node.Name);
     ErrorIfIsNull(node.TypeDef);
     return true;
 }
 public override bool Visit(AstArgumentDef node)
 {
     return true;
 }
        public override bool Visit(AstArgumentDef node)
        {
            if (node.TypeDef is AstIdArrayExpression)
            {
                DispatchError(node.TypeDef.TextPosition, "Passing arrays to functions is not implemented in current version.");
                return false;
            }

            var s = table.LookupParent(node.Name.Id);
            if (s != null)
            {
                DispatchError(node.Name.TextPosition, "this variable name already used in parent scope. Ambigious variables is forbidden.");
            }

            return true;
        }
Example #4
0
        // #ARGUMENTS_DEFINITION #ARGUMENT_DEFINITION COMMA #ARGUMENTS_DEFINITION
        /*private void ConstructArgumentsDefinition()
        {
        }
        */
        // #ARGUMENT_DEFINITION #TYPE_DEFINITION ID
        private void ConstructArgumentDefinition()
        {
            var argName = nodes.Pop() as AstIdExpression;
            var typeDef = nodes.Pop() as AstIdExpression;
            var argDef = new AstArgumentDef(typeDef, argName);

            PushNode(argDef);
        }
 public abstract bool Visit(AstArgumentDef node);