Changeset 5336:fe802c9b09e9 in livinglogic.python.xist for src/ll/UL4.g
- Timestamp:
- 02/11/13 13:46:43 (7 years ago)
- Branch:
- default
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
src/ll/UL4.g
r5331 r5336 141 141 142 142 none returns [node] 143 : NONE { $node = ul4c.Const( None) }143 : NONE { $node = ul4c.Const(self.location, None) } 144 144 ; 145 145 146 146 true_ returns [node] 147 : TRUE { $node = ul4c.Const( True) }147 : TRUE { $node = ul4c.Const(self.location, True) } 148 148 ; 149 149 150 150 false_ returns [node] 151 : FALSE { $node = ul4c.Const( False) }151 : FALSE { $node = ul4c.Const(self.location, False) } 152 152 ; 153 153 154 154 int_ returns [node] 155 : INT { $node = ul4c.Const( int($INT.text, 0)) }155 : INT { $node = ul4c.Const(self.location, int($INT.text, 0)) } 156 156 ; 157 157 158 158 float_ returns [node] 159 : FLOAT { $node = ul4c.Const( float($FLOAT.text)) }159 : FLOAT { $node = ul4c.Const(self.location, float($FLOAT.text)) } 160 160 ; 161 161 162 162 string returns [node] 163 : STRING { $node = ul4c.Const( ast.literal_eval($STRING.text)) }163 : STRING { $node = ul4c.Const(self.location, ast.literal_eval($STRING.text)) } 164 164 ; 165 165 166 166 date returns [node] 167 : DATE { $node = ul4c.Const( datetime.datetime(*map(int, [f for f in ul4c.datesplitter.split($DATE.text[2:-1]) if f]))) }167 : DATE { $node = ul4c.Const(self.location, datetime.datetime(*map(int, [f for f in ul4c.datesplitter.split($DATE.text[2:-1]) if f]))) } 168 168 ; 169 169 170 170 color returns [node] 171 : COLOR { $node = ul4c.Const( color.Color.fromrepr($COLOR.text)) }171 : COLOR { $node = ul4c.Const(self.location, color.Color.fromrepr($COLOR.text)) } 172 172 ; 173 173 174 174 name returns [node] 175 : NAME { $node = ul4c.Var( $NAME.text) }175 : NAME { $node = ul4c.Var(self.location, $NAME.text) } 176 176 ; 177 177 … … 192 192 : 193 193 '[' 194 ']' { $node = ul4c.List( ) }194 ']' { $node = ul4c.List(self.location) } 195 195 | 196 '[' {$node = ul4c.List( ) }196 '[' {$node = ul4c.List(self.location) } 197 197 e1=expr1 { $node.items.append($e1.node) } 198 198 ( … … 220 220 condition=expr1 { _condition = $condition.node; } 221 221 )? 222 ']' { $node = ul4c.ListComp( $item.node, $n.varname, $container.node, _condition) }222 ']' { $node = ul4c.ListComp(self.location, $item.node, $n.varname, $container.node, _condition) } 223 223 ; 224 224 … … 235 235 : 236 236 '{' 237 '}' { $node = ul4c.Dict( ) }237 '}' { $node = ul4c.Dict(self.location) } 238 238 | 239 '{' { $node = ul4c.Dict( ) }239 '{' { $node = ul4c.Dict(self.location) } 240 240 i1=dictitem { $node.items.append($i1.node) } 241 241 ( … … 265 265 condition=expr1 { _condition = $condition.node; } 266 266 )? 267 '}' { $node = ul4c.DictComp( $key.node, $value.node, $n.varname, $container.node, _condition) }267 '}' { $node = ul4c.DictComp(self.location, $key.node, $value.node, $n.varname, $container.node, _condition) } 268 268 ; 269 269 … … 282 282 'if' 283 283 condition=expr1 { _condition = $condition.node; } 284 )? { $node = ul4c.GenExpr( $item.node, $n.varname, $container.node, _condition) }284 )? { $node = ul4c.GenExpr(self.location, $item.node, $n.varname, $container.node, _condition) } 285 285 ; 286 286 … … 328 328 /* Attribute access */ 329 329 '.' 330 n=name { $node = ul4c.GetAttr( $node, $n.text) }330 n=name { $node = ul4c.GetAttr(self.location, $node, $n.text) } 331 331 | 332 332 /* Function/method call */ 333 '(' { $node = ul4c.CallMeth( $node.obj, $node.attrname) if isinstance($node, ul4c.GetAttr) else ul4c.CallFunc($node) }333 '(' { $node = ul4c.CallMeth(self.location, $node.obj, $node.attrname) if isinstance($node, ul4c.GetAttr) else ul4c.CallFunc(self.location, $node) } 334 334 ( 335 335 /* No arguments */ … … 391 391 ( 392 392 e2=expr1 { index2 = $e2.node; } 393 )? { $node = ul4c.GetSlice( $node, None, index2) }393 )? { $node = ul4c.GetSlice(self.location, $node, None, index2) } 394 394 | 395 395 e2=expr1 { index1 = $e2.node; } … … 399 399 e3=expr1 { index2 = $e3.node; } 400 400 )? 401 )? { $node = ul4c.GetSlice( $node, index1, index2) if slice else ul4c.GetItem($node, index1) }401 )? { $node = ul4c.GetSlice(self.location, $node, index1, index2) if slice else ul4c.GetItem(self.location, $node, index1) } 402 402 ) 403 403 ']' … … 418 418 $node = $e.node; 419 419 for i in range(count): 420 $node = ul4c.Neg.make( $node);420 $node = ul4c.Neg.make(self.location, $node); 421 421 } 422 422 ; … … 436 436 '%' { cls = ul4c.Mod; } 437 437 ) 438 e2=expr8 { $node = cls.make( $node, $e2.node) }438 e2=expr8 { $node = cls.make(self.location, $node, $e2.node) } 439 439 )* 440 440 ; … … 450 450 '-' { cls = ul4c.Sub; } 451 451 ) 452 e2=expr7 { $node = cls.make( $node, $e2.node) }452 e2=expr7 { $node = cls.make(self.location, $node, $e2.node) } 453 453 )* 454 454 ; … … 472 472 '>=' { cls = ul4c.GE; } 473 473 ) 474 e2=expr6 { $node = cls.make( $node, $e2.node) }474 e2=expr6 { $node = cls.make(self.location, $node, $e2.node) } 475 475 )* 476 476 ; … … 486 486 )? 487 487 'in' 488 e2=expr5 { $node = cls.make( $node, $e2.node) }488 e2=expr5 { $node = cls.make(self.location, $node, $e2.node) } 489 489 )? 490 490 ; … … 494 494 : 495 495 'not' 496 e=expr4 { $node = ul4c.Not.make( $e.node) }496 e=expr4 { $node = ul4c.Not.make(self.location, $e.node) } 497 497 | 498 498 e=expr4 { $node = $e.node; } … … 506 506 ( 507 507 'and' 508 e2=expr3 { $node = ul4c.And( $node, $e2.node) }508 e2=expr3 { $node = ul4c.And(self.location, $node, $e2.node) } 509 509 )* 510 510 ; … … 516 516 ( 517 517 'or' 518 e2=expr2 { $node = ul4c.Or( $node, $e2.node) }518 e2=expr2 { $node = ul4c.Or(self.location, $node, $e2.node) } 519 519 )* 520 520 ;