grammatica-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Grammatica-users] Multiline String & repeated terms


From: Per Cederberg
Subject: Re: [Grammatica-users] Multiline String & repeated terms
Date: Mon, 27 Apr 2015 09:43:42 +0200

A quick search on stackoverflow gives you this:
http://stackoverflow.com/questions/22244627/regexp-for-comments

That is, the problem is that the regex .* doesn't match newlines. There are lots of ways to handle this. Unfortunately there is no "dotall" flag in Grammatica though.

/Per


On Sun, Apr 26, 2015 at 9:11 PM, Alex Jeannopoulos <address@hidden> wrote:
I solved my own issue, but I am still having a lingering issue, I am looking to support a multi line string similar to python. I have the following defined.

%tokens%
MULTILINE_STRING                                   = <<(""").*(""")>>
QUOTED_STRING                                      = <<"([^"]|"")*+">>

%productions%
TEXT              = QUOTED_STRING | MULTILINE_STRING;

It seems that all string even a multi line string with """ (3 quotes) gets matched as a QUOTED_STRING. Any ideas?


On Sun, Apr 26, 2015 at 2:45 AM, Alex Jeannopoulos <address@hidden> wrote:
I am working through 2 issues, that I would like some advise on. Attached is a grammar and protocol files. Within the message are highlights of the grammar.

1. I am attempting to have a repeated term "CODE_DEFINITION", I am getting the following error when the CODE term is repeated.

[29:1] unexpected token "CODE", expected <EOF>, on line 29 column: 1


2. In my regex for a MULTILINE string a double quoted value breaks the parsing. Any thoughts how I can better support a python like multi line string, without escaping quotes within the """ block?

Thanks in advance.

CODE_LANG = PAREN_OPEN IDENTIFIER_STRING PAREN_CLOSE;

CODE_DEFINITION = CODE CODE_LANG? TEXT;


EventDefinition = SERVER_TYPE
CODE_TYPE
EVENT_TYPE
IDENTIFIER_STRING DEC_NUMBER
VERSION_TAG?
PAYLOAD
PAYLOAD_DESCRIPTION_INFO
EVENT_DESCRIPTION_INFO
CATEGORY_INFO
ACTIVE_STATE?
CODE_DEFINITION*
;


MULTILINE_STRING                        = <<(^""")([^*]|\*+[^*/])*("""$)>>
QUOTED_STRING = <<"([^"]|"")*+">>
TEXT              = QUOTED_STRING | MULTILINE_STRING;





_______________________________________________
Grammatica-users mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/grammatica-users



reply via email to

[Prev in Thread] Current Thread [Next in Thread]