aboutsummaryrefslogtreecommitdiff
path: root/nomsu.4.peg
diff options
context:
space:
mode:
Diffstat (limited to 'nomsu.4.peg')
-rw-r--r--nomsu.4.peg16
1 files changed, 11 insertions, 5 deletions
diff --git a/nomsu.4.peg b/nomsu.4.peg
index 95e3ef0..5f84688 100644
--- a/nomsu.4.peg
+++ b/nomsu.4.peg
@@ -111,18 +111,24 @@ indented_nomsu (EscapedNomsu):
index_chain (IndexChain):
noindex_inline_expression ("." (text_word / noindex_inline_expression))+
+inline_action: inline_methodcall / _inline_action
+inline_methodcall (MethodCall):
+ (inline_expression / "(" inline_block ")") ws* "::" ws* _inline_action
-- Actions need either at least 1 word, or at least 2 tokens
-inline_action (Action):
+_inline_action (Action):
!section_division
- ({:target: (inline_expression / "(" inline_block ")") :} ws* "::" ws*)?
( (inline_arg (ws* (inline_arg / word))+)
/ (word (ws* (inline_arg / word))*))
(ws* inline_block)?
inline_arg: inline_expression / inline_block / "(" ws* ")"
-action (Action):
+
+action: methodcall / _action
+methodcall (MethodCall):
+ (expression / "(" inline_block ")" / indented_block)
+ ((ws* "\")? eol nl_nodent "..")? ws* "::" ((ws* "\")? eol nl_nodent "..")? ws*
+ _action
+_action (Action):
!section_division
- ({:target: (expression / "(" inline_block ")" / indented_block) :}
- ((ws* "\")? eol nl_nodent "..")? ws* "::" ((ws* "\")? eol nl_nodent "..")? ws*)?
( (arg (((ws* "\")? eol nl_nodent "..")? ws* (arg / word))+)
/ (word (((ws* "\")? eol nl_nodent "..")? ws* (arg / word))*))
arg: expression / inline_block / indented_block / "(" ws* ")"