diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g index ed4ad958ed7ed08944498b5199c15515b6d8c77a..857d40533f5c1b78dd5ca95083eb2f41c2a472ad 100644 --- a/libwccl/parser/grammar.g +++ b/libwccl/parser/grammar.g @@ -1950,16 +1950,21 @@ match_mark_action } : "mark" LPAREN match_from = match_fit[tagset, vars] COMMA - match_to = match_fit[tagset, vars] COMMA + (match_to = match_fit[tagset, vars] COMMA) ? annotation_name : STRING RPAREN { - m_act.reset( - new MarkMatch( - match_from, - match_to, - ((antlr::Token*)annotation_name)->getText() - ) - ); + if (!match_to) { + m_act.reset( + new MarkMatch( + match_from, + ((antlr::Token*)annotation_name)->getText())); + } else { + m_act.reset( + new MarkMatch( + match_from, + match_to, + ((antlr::Token*)annotation_name)->getText())); + } } ;