parser.py (9271:3859f5d4f2c6) | parser.py (9298:9a087e046c58) |
---|---|
1# Copyright (c) 2009 The Hewlett-Packard Development Company 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions are 6# met: redistributions of source code must retain the above copyright 7# notice, this list of conditions and the following disclaimer; 8# redistributions in binary form must reproduce the above copyright --- 301 unchanged lines hidden (view full) --- 310 p[4]["enumeration"] = "yes" 311 p[4]["state_decl"] = "yes" 312 p[0] = ast.StateDeclAST(self, p[3], p[4], p[7]) 313 314 def p_decl__object(self, p): 315 "decl : type ident pairs SEMI" 316 p[0] = ast.ObjDeclAST(self, p[1], p[2], p[3]) 317 | 1# Copyright (c) 2009 The Hewlett-Packard Development Company 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions are 6# met: redistributions of source code must retain the above copyright 7# notice, this list of conditions and the following disclaimer; 8# redistributions in binary form must reproduce the above copyright --- 301 unchanged lines hidden (view full) --- 310 p[4]["enumeration"] = "yes" 311 p[4]["state_decl"] = "yes" 312 p[0] = ast.StateDeclAST(self, p[3], p[4], p[7]) 313 314 def p_decl__object(self, p): 315 "decl : type ident pairs SEMI" 316 p[0] = ast.ObjDeclAST(self, p[1], p[2], p[3]) 317 |
318 # Function definition and declaration |
|
318 def p_decl__func_decl(self, p): | 319 def p_decl__func_decl(self, p): |
319 """decl : void ident '(' params ')' pairs SEMI | 320 "decl : func_decl" 321 p[0] = p[1] 322 323 def p_func_decl__0(self, p): 324 """func_decl : void ident '(' params ')' pairs SEMI |
320 | type ident '(' params ')' pairs SEMI""" 321 p[0] = ast.FuncDeclAST(self, p[1], p[2], p[4], p[6], None) 322 323 def p_decl__func_def(self, p): | 325 | type ident '(' params ')' pairs SEMI""" 326 p[0] = ast.FuncDeclAST(self, p[1], p[2], p[4], p[6], None) 327 328 def p_decl__func_def(self, p): |
324 """decl : void ident '(' params ')' pairs statements 325 | type ident '(' params ')' pairs statements""" | 329 "decl : func_def" 330 p[0] = p[1] 331 332 def p_func_def__0(self, p): 333 """func_def : void ident '(' params ')' pairs statements 334 | type ident '(' params ')' pairs statements""" |
326 p[0] = ast.FuncDeclAST(self, p[1], p[2], p[4], p[6], p[7]) 327 328 # Type fields 329 def p_type_members__list(self, p): 330 "type_members : type_member type_members" 331 p[0] = [ p[1] ] + p[2] 332 333 def p_type_members__empty(self, p): 334 "type_members : empty" 335 p[0] = [] 336 337 def p_type_method__0(self, p): 338 "type_member : type_or_void ident '(' types ')' pairs SEMI" 339 p[0] = ast.TypeFieldMethodAST(self, p[1], p[2], p[4], p[6]) 340 | 335 p[0] = ast.FuncDeclAST(self, p[1], p[2], p[4], p[6], p[7]) 336 337 # Type fields 338 def p_type_members__list(self, p): 339 "type_members : type_member type_members" 340 p[0] = [ p[1] ] + p[2] 341 342 def p_type_members__empty(self, p): 343 "type_members : empty" 344 p[0] = [] 345 346 def p_type_method__0(self, p): 347 "type_member : type_or_void ident '(' types ')' pairs SEMI" 348 p[0] = ast.TypeFieldMethodAST(self, p[1], p[2], p[4], p[6]) 349 |
350 def p_type_method__1(self, p): 351 "type_member : type_or_void ident '(' params ')' pairs statements" 352 p[0] = ast.FuncDeclAST(self, p[1], p[2], p[4], p[6], p[7]) 353 |
|
341 def p_type_member__1(self, p): 342 "type_member : type_or_void ident pairs SEMI" 343 p[0] = ast.TypeFieldMemberAST(self, p[1], p[2], p[3], None) 344 345 def p_type_member__2(self, p): 346 "type_member : type_or_void ident ASSIGN expr SEMI" 347 p[0] = ast.TypeFieldMemberAST(self, p[1], p[2], 348 ast.PairListAST(self), p[4]) --- 349 unchanged lines hidden --- | 354 def p_type_member__1(self, p): 355 "type_member : type_or_void ident pairs SEMI" 356 p[0] = ast.TypeFieldMemberAST(self, p[1], p[2], p[3], None) 357 358 def p_type_member__2(self, p): 359 "type_member : type_or_void ident ASSIGN expr SEMI" 360 p[0] = ast.TypeFieldMemberAST(self, p[1], p[2], 361 ast.PairListAST(self), p[4]) --- 349 unchanged lines hidden --- |