Pytocs.Syntax.Parser.trailer C# (CSharp) Method

trailer() public method

public trailer ( Exp core ) : Exp
core Exp
return Exp
        public Exp trailer(Exp core)
        {
            Token tok;
            switch (lexer.Peek().Type)
            {
            case TokenType.LPAREN:
                tok = lexer.Get();
                var args = arglist(core, tok.Start);
                Expect(TokenType.RPAREN);
                return args;
            case TokenType.LBRACKET:
                lexer.Get();
                var subs = subscriptlist();
                tok = Expect(TokenType.RBRACKET);
                return new ArrayRef(core, subs, filename, core.Start, tok.End);
            case TokenType.DOT:
                lexer.Get();
                tok = Expect(TokenType.ID);
                var id = new Identifier((string) tok.Value, filename, core.Start, tok.End);
                return new AttributeAccess(core, id, filename, core.Start, tok.End);
            default: throw new InvalidOperationException();
            }
        }
        //subscriptlist: subscript (',' subscript)* [',']