diff options
Diffstat (limited to 'rst_parser.lua')
-rw-r--r-- | rst_parser.lua | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/rst_parser.lua b/rst_parser.lua index 88c894d..bee69f7 100644 --- a/rst_parser.lua +++ b/rst_parser.lua @@ -722,32 +722,31 @@ local parser = P{ -- Definition lists -------------------------------------------------------------------------------- - definition_list = Cs(V"definition_item" + definition_list = Ct(V"definition_item" * (V"blank_line" * V"definition_item")^0) * V"end_block" / rst.deflist , - definition_item = Cs(V"definition_term" + definition_item = Ct(C(V"definition_term") * V"definition_classifiers" * V"eol" - * V"definition_def") - / rst.deflist_item, + * Ct(V"definition_def")) + , - definition_term = Cs((1 - V"eol" - V"definition_classifier_separator")^1) - / rst.deflist_term, + definition_term = (1 - V"eol" - V"definition_classifier_separator")^1 + , definition_classifier_separator = V"space" * V"colon" * V"space", definition_classifiers = V"definition_classifier"^0, definition_classifier = V"definition_classifier_separator" - * Cs((1 - V"eol" - V"definition_classifier_separator")^1) - / rst.deflist_classifier, + * C((1 - V"eol" - V"definition_classifier_separator")^1) + , - definition_def = Cs(V"definition_firstpar" - * V"definition_par"^0) - / rst.deflist_def, + definition_def = C(V"definition_firstpar") * C(V"definition_par")^0 + , definition_indent = Cmt(V"space"^1, function(s, i, indent) warn("def-i", #indent, #state.currentindent, indent == state.currentindent, i) @@ -755,13 +754,13 @@ local parser = P{ return true end), - definition_firstpar = Cs(V"definition_parinit" - * (V"definition_parline" - V"blank_line")^0) - / rst.paragraph, + definition_firstpar = V"definition_parinit" + * (V"definition_parline" - V"blank_line")^0 + , definition_par = V"blank_line" - * Cs((V"definition_parline" - V"blank_line")^1) - / rst.paragraph, + * (V"definition_parline" - V"blank_line")^1 + , definition_parinit = V"definition_indent" * (1 - V"eol")^1 |