diff --git a/parser/src/main/antlr4/nu/zoom/dsl/parser/Endpoints.g4 b/parser/src/main/antlr4/nu/zoom/dsl/parser/Endpoints.g4 index 6885407..e3bf2c5 100644 --- a/parser/src/main/antlr4/nu/zoom/dsl/parser/Endpoints.g4 +++ b/parser/src/main/antlr4/nu/zoom/dsl/parser/Endpoints.g4 @@ -10,7 +10,7 @@ compoundFields : '(' compoundField (',' compoundField)* ')' ; compoundField : fieldName ':' fieldType ; fieldName : IDENTIFIER ; fieldType : IDENTIFIER ; -endpoint : path '<' (compoundType | IDENTIFIER) ; +endpoint : path '=<' (compoundType | IDENTIFIER) ; path : (pathSegment)+ ; pathSegment : '/' (IDENTIFIER|VALUE) ; @@ -18,7 +18,7 @@ pathSegment : '/' (IDENTIFIER|VALUE) ; fragment DIGIT : [0-9] ; fragment LOWERCASE : [a-z] ; fragment UPPERCASE : [A-Z] ; -COMMENT : '/*' (IDENTIFIER|VALUE)* '*/' -> skip ; +fragment GENERICS : '['|']'|'<'|'>' ; WS : [ \t\n\r]+ -> skip; -IDENTIFIER : (LOWERCASE | UPPERCASE) (LOWERCASE | UPPERCASE | DIGIT)* ; -VALUE : ~[ ,{}:()\n\t\r/<>"#';*]+ ; +IDENTIFIER : (LOWERCASE | UPPERCASE) (LOWERCASE | UPPERCASE | DIGIT | GENERICS)* ; +VALUE : ~[ ,{}:()/="#';*]+ ; diff --git a/test01.endpoints b/test01.endpoints index 0beb7d5..c60ce61 100644 --- a/test01.endpoints +++ b/test01.endpoints @@ -1,2 +1,2 @@ -/some/endpoint < SomeType(foo:String) -/some/other/endpoint < SomeOtherType(bar:Embedded) \ No newline at end of file +/some/endpoint =< SomeType(foo:String) +/some/other/endpoint =< SomeOtherType(bar:Seq[Embedded]) \ No newline at end of file