diff options
Diffstat (limited to '')
| -rw-r--r-- | MoonParser/moon_parser.cpp | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/MoonParser/moon_parser.cpp b/MoonParser/moon_parser.cpp index ec8df38..8917e58 100644 --- a/MoonParser/moon_parser.cpp +++ b/MoonParser/moon_parser.cpp | |||
| @@ -312,30 +312,24 @@ rule Parens = sym('(') >> *SpaceBreak >> Exp >> *SpaceBreak >> sym(')'); | |||
| 312 | rule Callable = Space >> Variable | SelfName | VarArg | Parens; | 312 | rule Callable = Space >> Variable | SelfName | VarArg | Parens; |
| 313 | rule FnArgsExpList = Exp >> *((Break | sym(',')) >> White >> Exp); | 313 | rule FnArgsExpList = Exp >> *((Break | sym(',')) >> White >> Exp); |
| 314 | 314 | ||
| 315 | rule FnArgs = Seperator >> | 315 | rule FnArgs = (symx('(') >> *SpaceBreak >> -FnArgsExpList >> *SpaceBreak >> sym(')')) | |
| 316 | ( | 316 | (sym('!') >> not_(expr('='))); |
| 317 | ( | ||
| 318 | symx('(') >> *SpaceBreak >> -FnArgsExpList >> *SpaceBreak >> sym(')') | ||
| 319 | ) | ( | ||
| 320 | sym('!') >> not_(expr('=')) | ||
| 321 | ) | ||
| 322 | ); | ||
| 323 | 317 | ||
| 324 | extern rule ChainItems, DotChainItem, ColonChain; | 318 | extern rule ChainItems, DotChainItem, ColonChain; |
| 325 | 319 | ||
| 326 | rule chain_call = (Callable | String) >> ChainItems; | 320 | rule chain_call = (Callable | String) >> ChainItems; |
| 327 | rule chain_item = not_(set(".\\")) >> ChainItems; | 321 | rule chain_item = and_(set(".\\")) >> ChainItems; |
| 328 | rule chain_dot_chain = DotChainItem >> -ChainItems; | 322 | rule chain_dot_chain = DotChainItem >> -ChainItems; |
| 329 | 323 | ||
| 330 | rule Chain = | 324 | rule Chain = Seperator >> ( |
| 331 | chain_call | | 325 | chain_call | |
| 332 | chain_item | | 326 | chain_item | |
| 333 | Space >> (chain_dot_chain | ColonChain); | 327 | Space >> (chain_dot_chain | ColonChain)); |
| 334 | 328 | ||
| 335 | extern rule ChainItem; | 329 | extern rule ChainItem; |
| 336 | 330 | ||
| 337 | rule chain_with_colon = +ChainItem >> -ColonChain; | 331 | rule chain_with_colon = +ChainItem >> -ColonChain; |
| 338 | rule ChainItems = Seperator >> (chain_with_colon | ColonChain); | 332 | rule ChainItems = chain_with_colon | ColonChain; |
| 339 | 333 | ||
| 340 | extern rule Invoke, Slice; | 334 | extern rule Invoke, Slice; |
| 341 | 335 | ||
| @@ -355,11 +349,11 @@ rule Slice = | |||
| 355 | (sym(',') >> Exp | default_value) >> | 349 | (sym(',') >> Exp | default_value) >> |
| 356 | sym(']'); | 350 | sym(']'); |
| 357 | 351 | ||
| 358 | rule Invoke = | 352 | rule Invoke = Seperator >> ( |
| 359 | FnArgs | | 353 | FnArgs | |
| 360 | SingleString | | 354 | SingleString | |
| 361 | DoubleString | | 355 | DoubleString | |
| 362 | and_(expr('[')) >> LuaString; | 356 | and_(expr('[')) >> LuaString); |
| 363 | 357 | ||
| 364 | extern rule TableValueList, TableLitLine; | 358 | extern rule TableValueList, TableLitLine; |
| 365 | 359 | ||
| @@ -448,7 +442,7 @@ rule ExpList = Seperator >> Exp >> *(sym(',') >> Exp); | |||
| 448 | rule ExpListLow = Seperator >> Exp >> *((sym(',') | sym(';')) >> Exp); | 442 | rule ExpListLow = Seperator >> Exp >> *((sym(',') | sym(';')) >> Exp); |
| 449 | 443 | ||
| 450 | rule ArgLine = CheckIndent >> Exp >> *(sym(',') >> Exp); | 444 | rule ArgLine = CheckIndent >> Exp >> *(sym(',') >> Exp); |
| 451 | rule ArgBlock = Seperator >> ArgLine >> *(sym(',') >> SpaceBreak >> ArgLine) >> PopIndent; | 445 | rule ArgBlock = ArgLine >> *(sym(',') >> SpaceBreak >> ArgLine) >> PopIndent; |
| 452 | 446 | ||
| 453 | rule invoke_args_with_table = | 447 | rule invoke_args_with_table = |
| 454 | sym(',') >> | 448 | sym(',') >> |
| @@ -458,9 +452,9 @@ rule invoke_args_with_table = | |||
| 458 | ); | 452 | ); |
| 459 | 453 | ||
| 460 | rule InvokeArgs = | 454 | rule InvokeArgs = |
| 461 | not_(expr('-')) >> | 455 | not_(expr('-')) >> Seperator >> |
| 462 | ( | 456 | ( |
| 463 | ExpList >> -(invoke_args_with_table | TableBlock) | | 457 | Exp >> *(sym(',') >> Exp) >> -(invoke_args_with_table | TableBlock) | |
| 464 | TableBlock | 458 | TableBlock |
| 465 | ); | 459 | ); |
| 466 | 460 | ||
