From fd621a1062c12b808efd7f8adf1957e0fe978ecc Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 8 Apr 2018 15:41:05 -0700 Subject: Cleaned up LHS of "." operator to avoid adding unnecessary parens so Lua's parser doesn't get confused by (x).y = 1. --- nomsu.peg | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'nomsu.peg') diff --git a/nomsu.peg b/nomsu.peg index 6f2e9cb..5ea5ee0 100644 --- a/nomsu.peg +++ b/nomsu.peg @@ -15,8 +15,9 @@ indented_block (Block): (dedent / (("" -> "Error while parsing block") => error)) |} -> Tuple -inline_nomsu (Nomsu): "\" inline_expression -indented_nomsu (Nomsu): "\" expression +inline_nomsu (Nomsu): "\" noindex_inline_expression +indented_nomsu (Nomsu): + "\" (noindex_inline_expression / (":" %ws* (inline_functioncall / inline_expression) eol) / indented_expression) index_chain (IndexChain): {| noindex_inline_expression ("." ((({} ({|{%operator / (!number plain_word)}|} -> Tuple) {}) -> Text) / noindex_inline_expression))+ |} -> Tuple @@ -30,7 +31,7 @@ inline_expression: indented_expression: indented_text / indented_nomsu / indented_list / indented_dict / indented_block expression: - inline_expression / (":" %ws* (inline_functioncall / inline_expression)) / indented_expression + inline_expression / (":" %ws* (inline_functioncall / inline_expression) eol) / indented_expression -- Function calls need at least one word in them inline_functioncall (FunctionCall): -- cgit v1.2.3