Explorar el Código

Factorize assign operations into a single rule

pull/5/head
mtardy hace 4 años
padre
commit
b10ee10533
Se han modificado 1 ficheros con 14 adiciones y 24 borrados
  1. +14
    -24
      parse.leg

+ 14
- 24
parse.leg Ver fichero

@ -503,33 +503,23 @@ prefix = PLUS n:prefix { $$= n }
| n:postfix { $$= n }
postfix = i:value ( DOT s:IDENT a:argumentList { map_set(a, intern("this"), i); i = newCall(i, a) }
| DOT s:IDENT !(ASSIGN
| ASSIGNADD
| ASSIGNSUB
| ASSIGNMUL
| ASSIGNDIV
| ASSIGNMOD
| ASSIGNBITOR
| ASSIGNBITXOR
| ASSIGNBITAND
| ASSIGNSHLEFT
| ASSIGNSHRIGHT
) { i = newGetMap(getMember_proto, i, s) }
| LBRAC p:exp RBRAC !(ASSIGN
| ASSIGNADD
| ASSIGNSUB
| ASSIGNMUL
| ASSIGNDIV
| ASSIGNMOD
| ASSIGNBITOR
| ASSIGNBITXOR
| ASSIGNBITAND
| ASSIGNSHLEFT
| ASSIGNSHRIGHT
) { i = newGetMap(getIndex_proto, i, p) }
| DOT s:IDENT !assignOp { i = newGetMap(getMember_proto, i, s) }
| LBRAC p:exp RBRAC !assignOp { i = newGetMap(getIndex_proto, i, p) }
| a:argumentList { i = newCall(i, a) }
) * { $$ = i }
assignOp = ASSIGN
| ASSIGNADD
| ASSIGNSUB
| ASSIGNMUL
| ASSIGNDIV
| ASSIGNMOD
| ASSIGNBITOR
| ASSIGNBITXOR
| ASSIGNBITAND
| ASSIGNSHLEFT
| ASSIGNSHRIGHT
paramList = LPAREN m:makeMap
( i:IDENT { map_append(m, i) }
( COMMA i:IDENT { map_append(m, i) }

Cargando…
Cancelar
Guardar