Yes we could :)
Stef
On 20 Sep 2017, at 16:22, Nicolas Anquetil nicolas.anquetil@inria.fr wrote:
great job gustavo
not directly related but couldn't we switch to ston/json as a serialization format ? that would allow us to interact more easily with other languages/platforms
nicolas
On 19/09/2017 21:18, Stéphane Ducasse wrote:
This is cool we should submit it also to the Smaccers
On 19 Sep 2017, at 15:37, Gustavo Santos <gugajansen@gmail.com mailto:gugajansen@gmail.com> wrote:
Hi all,
I don't know if someone already did this but I was working with SmaCC from scratch so I did a very simple parser for MSE files. It parses all right with a Java model although I need to check and specialize the grammar for what I intend to do.
Cheers,
%start Model ; %left <close>; %glr;
<whitespace> : \s+ ; <eol> : \r | \n | \r\n ; <letter> : [a-zA-Z_] ; <digit> : [0-9] ; <integer> : -? <digit>+ ; <number> : -? <digit>+ ( . <digit>+ ) ? ( [eE] ( - | + ) ? <digit>+ ) ? ; <string> : ' [^']* ' (' [^']* ')* ; <boolean> : true | false ; <open> : ( ; <close> : ) ; <simpleName> : <letter> ( <letter> | <digit> ) * ; <qualifiedName> : <letter> ( <letter> | <digit> ) * ( . <letter> ( <letter> | <digit> ) * ) * ;
Model : <open> ElementNodes <close> ; ElementNodes : ElementNode | ElementNode ElementNodes ;
ElementNode : <open> Name Identifier AttributeNodes <close> ; Identifier : <open> IdentifierToken Integer <close> ; IdentifierToken : "id:" 'refToken';
AttributeNodes : | AttributeNode AttributeNodes ; AttributeNode : <open> SimpleName ValueNodes <close> ;
ValueNodes : ValueNode | ValueNode ValueNodes ; ValueNode : Primitive | Reference ; Primitive : String | Integer | Number | Boolean ;
Reference : IntegerReference | NameReference ; IntegerReference : <open> ReferenceToken Integer <close>; NameReference : <open> ReferenceToken QualifiedName <close>; ReferenceToken : "ref:" 'refToken';
Integer : <integer> 'integer'; Number : <number> 'number' ; String: <string> 'string'; Boolean: <boolean> 'boolean'; Name : SimpleName | QualifiedName ; SimpleName : <simpleName> 'simpleName'; QualifiedName : <qualifiedName> 'qualifiedName';
-- Gustavo Santos http://gustavojss.github.io/ http://gustavojss.github.io/ _______________________________________________ Moose-dev mailing list Moose-dev@list.inf.unibe.ch mailto:Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev https://www.list.inf.unibe.ch/listinfo/moose-dev
Stéphane Ducasse http://stephane.ducasse.free.fr http://stephane.ducasse.free.fr/ http://www.synectique.eu http://www.synectique.eu/ / http://www.pharo.org http://www.pharo.org/ 03 59 35 87 52 Assistant: Julie Jonas FAX 03 59 57 78 50 TEL 03 59 35 86 16 S. Ducasse - Inria 40, avenue Halley, Parc Scientifique de la Haute Borne, Bât.A, Park Plaza Villeneuve d'Ascq 59650 France
Moose-dev mailing list Moose-dev@list.inf.unibe.ch mailto:Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev https://www.list.inf.unibe.ch/listinfo/moose-dev
-- Nicolas Anquetil -- MCF (HDR) Project-Team RMod _______________________________________________ Moose-dev mailing list Moose-dev@list.inf.unibe.ch https://www.list.inf.unibe.ch/listinfo/moose-dev
-------------------------------------------- Stéphane Ducasse http://stephane.ducasse.free.fr http://www.synectique.eu / http://www.pharo.org 03 59 35 87 52 Assistant: Julie Jonas FAX 03 59 57 78 50 TEL 03 59 35 86 16 S. Ducasse - Inria 40, avenue Halley, Parc Scientifique de la Haute Borne, Bât.A, Park Plaza Villeneuve d'Ascq 59650 France