From dbe2b6e2acffd1b7250787c7b727d248e47b891b Mon Sep 17 00:00:00 2001 From: Sven Gestegard Robertz <sven.robertz@cs.lth.se> Date: Wed, 29 Apr 2015 21:43:55 +0200 Subject: [PATCH] WiP: started adding intentions to parser --- compiler/2014/LabCommParser.parser | 15 ++++++++++++++- compiler/2014/LabCommScanner.flex | 3 +++ compiler/2014/Refactoring.jrag | 5 +++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/compiler/2014/LabCommParser.parser b/compiler/2014/LabCommParser.parser index 612320a..812e725 100644 --- a/compiler/2014/LabCommParser.parser +++ b/compiler/2014/LabCommParser.parser @@ -54,7 +54,20 @@ List var_decl_list = | var_decl_list.l var_decl.v {: return l.add(v); :} ; -List intentions = {: return new List(); :} +List intentions = + /* empty list */ {: return new List(); :} + | intention_list.l {: return l; :} + ; + +List intention_list = + intention.i {: return new List().add(i); :} + | intention_list.l intention.i {: return l.add(i); :} + ; + +String key = IDENTIFIER; +String stringliteral = IDENTIFIER; + +Intention intention = LPAREN key.k COLON stringliteral.v RPAREN {: return new Intention(k,v); :}; TypeInstance type_instance = intentions.i type.t IDENTIFIER {: return new TypeInstance(t, IDENTIFIER, i); :} diff --git a/compiler/2014/LabCommScanner.flex b/compiler/2014/LabCommScanner.flex index baf91ee..a0e2efa 100644 --- a/compiler/2014/LabCommScanner.flex +++ b/compiler/2014/LabCommScanner.flex @@ -76,7 +76,10 @@ NonZeroDigit = [1-9] "}" { return sym(Terminals.RBRACE); } "[" { return sym(Terminals.LBRACK); } "]" { return sym(Terminals.RBRACK); } + "(" { return sym(Terminals.LPAREN); } + ")" { return sym(Terminals.RPAREN); } ";" { return sym(Terminals.SEMICOLON); } + ":" { return sym(Terminals.COLON); } "," { return sym(Terminals.COMMA); } {Identifier} { return sym(Terminals.IDENTIFIER); } diff --git a/compiler/2014/Refactoring.jrag b/compiler/2014/Refactoring.jrag index fbe083f..2b573d9 100644 --- a/compiler/2014/Refactoring.jrag +++ b/compiler/2014/Refactoring.jrag @@ -11,4 +11,9 @@ aspect Refactoring { this(t, n, new List<Annotation>()); System.out.println("WARNING! TypeInstance(DataType, String) ignoring intention list"); } + + public ConcreteType.ConcreteType(Type t, String n) { + this(t, n, new List<Intention>()); + System.out.println("WARNING! ConcreteType(Type, String) ignoring intention list"); + } } -- GitLab