Example #1
0
 public override bool Walk(SublistParameter node)
 {
     node.PythonVariable = _binder.DefineParameter(node.Name);
     // we walk the node by hand to avoid walking the default values.
     WalkTuple(node.Tuple);
     return(false);
 }
Example #2
0
 public override bool Walk(SublistParameter node)
 {
     return(true);
 }
Example #3
0
        //  parameter ::=
        //      identifier | "(" sublist ")"
        private Parameter ParseParameter(int position, HashSet<string> names) {
            Token t = PeekToken();
            Parameter parameter = null;

            switch (t.Kind) {
                case TokenKind.LeftParenthesis: // sublist
                    NextToken();
                    Expression ret = ParseSublist(names);
                    Eat(TokenKind.RightParenthesis);
                    TupleExpression tret = ret as TupleExpression;
                    NameExpression nameRet;

                    if (tret != null) {
                        parameter = new SublistParameter(position, tret);
                    } else if ((nameRet = ret as NameExpression) != null) {
                        parameter = new Parameter(nameRet.Name);
                    } else {
                        ReportSyntaxError(_lookahead);
                    }

                    if (parameter != null) {
                        parameter.SetLoc(_globalParent, ret.IndexSpan);
                    }
                    break;

                case TokenKind.Name:  // identifier
                    NextToken();
                    string name = FixName((string)t.Value);
                    parameter = new Parameter(name);
                    CompleteParameterName(parameter, name, names);
                    break;

                default:
                    ReportSyntaxError(_lookahead);
                    break;
            }

            return parameter;
        }
Example #4
0
 public override bool Walk(SublistParameter node)
 {
     node.PythonVariable = _binder.DefineParameter(node.Name);
     node.Parent = _binder._currentScope;
     // we walk the node by hand to avoid walking the default values.
     WalkTuple(node.Tuple);
     return false;
 }
Example #5
0
 // SublistParameter
 public override bool Walk(SublistParameter node)
 {
     node.Parent = _currentScope;
     return(base.Walk(node));
 }
Example #6
0
 public override bool Walk(SublistParameter node)
 {
     CommonWalk(node);
     return true;
 }
Example #7
0
 public override void PostWalk(SublistParameter node)
 {
     CommonPostWalk(node);
 }
Example #8
0
        //  parameter ::=
        //      identifier | "(" sublist ")"
        Parameter ParseParameter(int position, Dictionary<SymbolId, object> names) {
            Token t = PeekToken();
            Parameter parameter = null;

            switch (t.Kind) {
                case TokenKind.LeftParenthesis: // sublist
                    NextToken();
                    Expression ret = ParseSublist(names);
                    Eat(TokenKind.RightParenthesis);
                    TupleExpression tret = ret as TupleExpression;

                    if (tret != null) {
                        parameter = new SublistParameter(position, tret);
                    } else {
                        parameter = new Parameter(((NameExpression)ret).Name);
                    }
                    parameter.SetLoc(ret.Span);
                    break;

                case TokenKind.Name:  // identifier
                    NextToken();
                    SymbolId name = FixName((SymbolId)t.Value);
                    parameter = new Parameter(name);
                    CompleteParameterName(parameter, name, names);
                    break;

                default:
                    ReportSyntaxError(_lookahead);
                    break;
            }

            return parameter;
        }
Example #9
0
 public override bool Walk(SublistParameter node) {
     return true;
 }
Example #10
0
 public override bool Walk(SublistParameter node) {
     node.Variable = _binder.DefineParameter(node.Name);
     return true;
 }
 // SublistParameter
 public override bool Walk(SublistParameter node) {
     node.Parent = _currentScope;
     return base.Walk(node);
 }
 public void Visit(PyAst.SublistParameter node) => throw CreateNotImplementedEx();