| @ -0,0 +1,19 @@ | |||||
| package ast | |||||
| type FileInput struct { | |||||
| ListNode | |||||
| } | |||||
| func NewFileInput() *FileInput { | |||||
| node := &FileInput{} | |||||
| node.initChildren() | |||||
| return node | |||||
| } | |||||
| func (node *FileInput) ID() NodeID { | |||||
| return FILE_INPUT | |||||
| } | |||||
| func (node *FileInput) Name() string { | |||||
| return NodeNames[FILE_INPUT] | |||||
| } | |||||
| @ -0,0 +1,19 @@ | |||||
| package ast | |||||
| import "github.com/brettlangdon/gython/token" | |||||
| type ListNode struct { | |||||
| children []interface{} | |||||
| } | |||||
| func (node *ListNode) initChildren() { | |||||
| node.children = make([]interface{}, 0) | |||||
| } | |||||
| func (node *ListNode) AppendToken(t *token.Token) { | |||||
| node.children = append(node.children, t) | |||||
| } | |||||
| func (node *ListNode) AppendNode(n Node) { | |||||
| node.children = append(node.children, n) | |||||
| } | |||||
| @ -0,0 +1,6 @@ | |||||
| package ast | |||||
| type Node interface { | |||||
| ID() NodeID | |||||
| Name() string | |||||
| } | |||||
| @ -0,0 +1,91 @@ | |||||
| package ast | |||||
| type NodeID int | |||||
| const ( | |||||
| SINGLE_INPUT NodeID = 256 | |||||
| FILE_INPUT NodeID = 257 | |||||
| EVAL_INPUT NodeID = 258 | |||||
| DECORATOR NodeID = 259 | |||||
| DECORATORS NodeID = 260 | |||||
| DECORATED NodeID = 261 | |||||
| ASYNC_FUNCDEF NodeID = 262 | |||||
| FUNCDEF NodeID = 263 | |||||
| PARAMETERS NodeID = 264 | |||||
| TYPEDARGSLIST NodeID = 265 | |||||
| TFPDEF NodeID = 266 | |||||
| VARARGSLIST NodeID = 267 | |||||
| VFPDEF NodeID = 268 | |||||
| STMT NodeID = 269 | |||||
| SIMPLE_STMT NodeID = 270 | |||||
| SMALL_STMT NodeID = 271 | |||||
| EXPR_STMT NodeID = 272 | |||||
| TESTLIST_STAR_EXPR NodeID = 273 | |||||
| AUGASSIGN NodeID = 274 | |||||
| DEL_STMT NodeID = 275 | |||||
| PASS_STMT NodeID = 276 | |||||
| FLOW_STMT NodeID = 277 | |||||
| BREAK_STMT NodeID = 278 | |||||
| CONTINUE_STMT NodeID = 279 | |||||
| RETURN_STMT NodeID = 280 | |||||
| YIELD_STMT NodeID = 281 | |||||
| RAISE_STMT NodeID = 282 | |||||
| IMPORT_STMT NodeID = 283 | |||||
| IMPORT_NAME NodeID = 284 | |||||
| IMPORT_FROM NodeID = 285 | |||||
| IMPORT_AS_NAME NodeID = 286 | |||||
| DOTTED_AS_NAME NodeID = 287 | |||||
| IMPORT_AS_NAMES NodeID = 288 | |||||
| DOTTED_AS_NAMES NodeID = 289 | |||||
| DOTTED_NAME NodeID = 290 | |||||
| GLOBAL_STMT NodeID = 291 | |||||
| NONLOCAL_STMT NodeID = 292 | |||||
| ASSERT_STMT NodeID = 293 | |||||
| COMPOUND_STMT NodeID = 294 | |||||
| ASYNC_STMT NodeID = 295 | |||||
| IF_STMT NodeID = 296 | |||||
| WHILE_STMT NodeID = 297 | |||||
| FOR_STMT NodeID = 298 | |||||
| TRY_STMT NodeID = 299 | |||||
| WITH_STMT NodeID = 300 | |||||
| WITH_ITEM NodeID = 301 | |||||
| EXCEPT_CLAUSE NodeID = 302 | |||||
| SUITE NodeID = 303 | |||||
| TEST NodeID = 304 | |||||
| TEST_NOCOND NodeID = 305 | |||||
| LAMBDEF NodeID = 306 | |||||
| LAMBDEF_NOCOND NodeID = 307 | |||||
| OR_TEST NodeID = 308 | |||||
| AND_TEST NodeID = 309 | |||||
| NOT_TEST NodeID = 310 | |||||
| COMPARISON NodeID = 311 | |||||
| COMP_OP NodeID = 312 | |||||
| STAR_EXPR NodeID = 313 | |||||
| EXPR NodeID = 314 | |||||
| XOR_EXPR NodeID = 315 | |||||
| AND_EXPR NodeID = 316 | |||||
| SHIFT_EXPR NodeID = 317 | |||||
| ARITH_EXPR NodeID = 318 | |||||
| TERM NodeID = 319 | |||||
| FACTOR NodeID = 320 | |||||
| POWER NodeID = 321 | |||||
| ATOM_EXPR NodeID = 322 | |||||
| ATOM NodeID = 323 | |||||
| TESTLIST_COMP NodeID = 324 | |||||
| TRAILER NodeID = 325 | |||||
| SUBSCRIPTLIST NodeID = 326 | |||||
| SUBSCRIPT NodeID = 327 | |||||
| SLICEOP NodeID = 328 | |||||
| EXPRLIST NodeID = 329 | |||||
| TESTLIST NodeID = 330 | |||||
| DICTORSETMAKER NodeID = 331 | |||||
| CLASSDEF NodeID = 332 | |||||
| ARGLIST NodeID = 333 | |||||
| ARGUMENT NodeID = 334 | |||||
| COMP_ITER NodeID = 335 | |||||
| COMP_FOR NodeID = 336 | |||||
| COMP_IF NodeID = 337 | |||||
| ENCODING_DECL NodeID = 338 | |||||
| YIELD_EXPR NodeID = 339 | |||||
| YIELD_ARG NodeID = 340 | |||||
| ) | |||||
| @ -0,0 +1,89 @@ | |||||
| package ast | |||||
| var NodeNames = [...]string{ | |||||
| SINGLE_INPUT: "SINGLE_INPUT", | |||||
| FILE_INPUT: "FILE_INPUT", | |||||
| EVAL_INPUT: "EVAL_INPUT", | |||||
| DECORATOR: "DECORATOR", | |||||
| DECORATORS: "DECORATORS", | |||||
| DECORATED: "DECORATED", | |||||
| ASYNC_FUNCDEF: "ASYNC_FUNCDEF", | |||||
| FUNCDEF: "FUNCDEF", | |||||
| PARAMETERS: "PARAMETERS", | |||||
| TYPEDARGSLIST: "TYPEDARGSLIST", | |||||
| TFPDEF: "TFPDEF", | |||||
| VARARGSLIST: "VARARGSLIST", | |||||
| VFPDEF: "VFPDEF", | |||||
| STMT: "STMT", | |||||
| SIMPLE_STMT: "SIMPLE_STMT", | |||||
| SMALL_STMT: "SMALL_STMT", | |||||
| EXPR_STMT: "EXPR_STMT", | |||||
| TESTLIST_STAR_EXPR: "TESTLIST_STAR_EXPR", | |||||
| AUGASSIGN: "AUGASSIGN", | |||||
| DEL_STMT: "DEL_STMT", | |||||
| PASS_STMT: "PASS_STMT", | |||||
| FLOW_STMT: "FLOW_STMT", | |||||
| BREAK_STMT: "BREAK_STMT", | |||||
| CONTINUE_STMT: "CONTINUE_STMT", | |||||
| RETURN_STMT: "RETURN_STMT", | |||||
| YIELD_STMT: "YIELD_STMT", | |||||
| RAISE_STMT: "RAISE_STMT", | |||||
| IMPORT_STMT: "IMPORT_STMT", | |||||
| IMPORT_NAME: "IMPORT_NAME", | |||||
| IMPORT_FROM: "IMPORT_FROM", | |||||
| IMPORT_AS_NAME: "IMPORT_AS_NAME", | |||||
| DOTTED_AS_NAME: "DOTTED_AS_NAME", | |||||
| IMPORT_AS_NAMES: "IMPORT_AS_NAMES", | |||||
| DOTTED_AS_NAMES: "DOTTED_AS_NAMES", | |||||
| DOTTED_NAME: "DOTTED_NAME", | |||||
| GLOBAL_STMT: "GLOBAL_STMT", | |||||
| NONLOCAL_STMT: "NONLOCAL_STMT", | |||||
| ASSERT_STMT: "ASSERT_STMT", | |||||
| COMPOUND_STMT: "COMPOUND_STMT", | |||||
| ASYNC_STMT: "ASYNC_STMT", | |||||
| IF_STMT: "IF_STMT", | |||||
| WHILE_STMT: "WHILE_STMT", | |||||
| FOR_STMT: "FOR_STMT", | |||||
| TRY_STMT: "TRY_STMT", | |||||
| WITH_STMT: "WITH_STMT", | |||||
| WITH_ITEM: "WITH_ITEM", | |||||
| EXCEPT_CLAUSE: "EXCEPT_CLAUSE", | |||||
| SUITE: "SUITE", | |||||
| TEST: "TEST", | |||||
| TEST_NOCOND: "TEST_NOCOND", | |||||
| LAMBDEF: "LAMBDEF", | |||||
| LAMBDEF_NOCOND: "LAMBDEF_NOCOND", | |||||
| OR_TEST: "OR_TEST", | |||||
| AND_TEST: "AND_TEST", | |||||
| NOT_TEST: "NOT_TEST", | |||||
| COMPARISON: "COMPARISON", | |||||
| COMP_OP: "COMP_OP", | |||||
| STAR_EXPR: "STAR_EXPR", | |||||
| EXPR: "EXPR", | |||||
| XOR_EXPR: "XOR_EXPR", | |||||
| AND_EXPR: "AND_EXPR", | |||||
| SHIFT_EXPR: "SHIFT_EXPR", | |||||
| ARITH_EXPR: "ARITH_EXPR", | |||||
| TERM: "TERM", | |||||
| FACTOR: "FACTOR", | |||||
| POWER: "POWER", | |||||
| ATOM_EXPR: "ATOM_EXPR", | |||||
| ATOM: "ATOM", | |||||
| TESTLIST_COMP: "TESTLIST_COMP", | |||||
| TRAILER: "TRAILER", | |||||
| SUBSCRIPTLIST: "SUBSCRIPTLIST", | |||||
| SUBSCRIPT: "SUBSCRIPT", | |||||
| SLICEOP: "SLICEOP", | |||||
| EXPRLIST: "EXPRLIST", | |||||
| TESTLIST: "TESTLIST", | |||||
| DICTORSETMAKER: "DICTORSETMAKER", | |||||
| CLASSDEF: "CLASSDEF", | |||||
| ARGLIST: "ARGLIST", | |||||
| ARGUMENT: "ARGUMENT", | |||||
| COMP_ITER: "COMP_ITER", | |||||
| COMP_FOR: "COMP_FOR", | |||||
| COMP_IF: "COMP_IF", | |||||
| ENCODING_DECL: "ENCODING_DECL", | |||||
| YIELD_EXPR: "YIELD_EXPR", | |||||
| YIELD_ARG: "YIELD_ARG", | |||||
| } | |||||