def p_argument_declaration(p): '''argument_declaration : IDENTIFIER | NUMBER | IDENTIFIER LBRACKET RBRACKET''' if len(p) == 2: p[0] = AST.TokenNode(p[1], nlines) elif len(p) == 2 and isinstance (p[1], AST.NumberNode): p[0] = AST.NumberNode(p[1], nlines) else: p[0] = AST.array_declNode(AST.TokenNode(p[1], nlines), nlines)
def p_array_declaration(p): '''array_declaration : NEW IDENTIFIER bracket_list''' p[0] = AST.array_declNode([AST.TokenNode(p[2], nlines)] + [p[3]], nlines)