Skip to content

Commit

Permalink
Merge pull request #48 from herminiogg/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
herminiogg authored Jun 9, 2020
2 parents cce340c + 72d5b17 commit 8e8349f
Show file tree
Hide file tree
Showing 25 changed files with 1,446 additions and 854 deletions.
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ organization := "es.weso"

name := "ShExML"

version := "0.2.0"
version := "0.2.1"

scalaVersion := "2.12.4"

Expand Down
2 changes: 1 addition & 1 deletion films.shexml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ EXPRESSION films <films_xml_file.film_xml UNION films_json_file.film_json>
:Films :[films.id] {
schema:name [films.name] ;
:year dbr:[films.year] ;
schema:countryOfOrigin dbr:[films.country] ;
schema:2232-22 dbr:[films.country] ;
schema:director dbr:[films.directors] ;
:screenwritter dbr:[films.screenwritters] ;
schema:musicBy dbr:[films.music] ;
Expand Down
16 changes: 14 additions & 2 deletions src/main/java/es/weso/antlr/ShExMLLexer.g4
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ SOURCE: S O U R C E -> mode(DECLARATION_CONTENT) ;
QUERY: Q U E R Y ;
ITERATOR: I T E R A T O R -> mode(DECLARATION_CONTENT) ;
FIELD: F I E L D -> mode(DECLARATION_CONTENT) ;
AUTOINCREMENT: A U T O I N C R E M E N T -> mode(AUTOINCREMENT_CONTENT);
EXPRESSION: E X P R E S S I O N ;
UNION: U N I O N ;
JOIN: J O I N ;
Expand All @@ -30,8 +31,8 @@ COMMA: ',' ;
QUOTE: '"' ;
AND: '&' | 'AND' ;
A: ('a' | 'A');
STRING_OR_VAR: LETTER (LETTER | DIGIT | '_')* ;
URI_VAR: (LETTER | DIGIT | '_')* ':' ;
STRING_OR_VAR: (LETTER | DIGIT | '_' | '-' | '\\.' | '%2E')+ ;
URI_VAR: (LETTER | DIGIT | '_' | '\\.' | '%2E')* ':' ;
STRINGOPERATOR: '"' (LETTER | DIGIT | ALLOWED_CHARACTERS | ' ')+ '"' ;
XMLSCHEMADATATYPE: XMLSCHEMADATATYPEPREFIX ':' ALLOWEDTYPES ;
SHAPELINK: '@' (URI_VAR STRING_OR_VAR | '<' STRING_OR_VAR '>') ;
Expand All @@ -54,6 +55,17 @@ STRING_OR_VAR_QUERY: LETTER (LETTER | DIGIT | '_')* ;
URI_VAR_QUERY: (LETTER | DIGIT | '_')* ':' ;
WS_DECLARATION: [ \t\n\r] -> skip ;

mode AUTOINCREMENT_CONTENT ;
LESS_SYMBOL_AUTOINCREMENT: '<' ;
TO: T O ;
BY: B Y ;
ADD_AUTOINCREMENT: '+' ;
DIGITS: DIGIT+ ;
STRING_OR_VAR_AUTOINCREMENT: LETTER (LETTER | DIGIT | '_')* ;
STRINGOPERATOR_AUTOINCREMENT: '"' (LETTER | DIGIT | ALLOWED_CHARACTERS | ' ')+ '"' ;
GREATER_SYMBOL_AUTOINCREMENT: '>' -> mode(DEFAULT_MODE) ;
WS_AUTOINCREMENT: [ \t\n\r] -> skip ;


fragment LETTER: [a-zA-Z] | '\u00C0'..'\u00D6' | '\u00D8'..'\u00F6' | '\u00F8'..'\u00FF' ;
fragment DIGIT: [0-9] ;
Expand Down
35 changes: 33 additions & 2 deletions src/main/java/es/weso/antlr/ShExMLLexer.interp

Large diffs are not rendered by default.

694 changes: 363 additions & 331 deletions src/main/java/es/weso/antlr/ShExMLLexer.java

Large diffs are not rendered by default.

111 changes: 60 additions & 51 deletions src/main/java/es/weso/antlr/ShExMLLexer.tokens
Original file line number Diff line number Diff line change
Expand Up @@ -3,54 +3,63 @@ SOURCE=2
QUERY=3
ITERATOR=4
FIELD=5
EXPRESSION=6
UNION=7
JOIN=8
MATCHER=9
AS=10
MATCHING=11
LESS_SYMBOL=12
GREATER_SYMBOL=13
BRACKET_LEFT=14
BRACKET_RIGHT=15
PAREN_LEFT=16
PAREN_RIGHT=17
BRACE_LEFT=18
BRACE_RIGHT=19
SEMICOLON=20
DOT=21
ADD=22
COMMA=23
QUOTE=24
AND=25
A=26
STRING_OR_VAR=27
URI_VAR=28
STRINGOPERATOR=29
XMLSCHEMADATATYPE=30
SHAPELINK=31
LANGTAG=32
COMMENT=33
WS=34
URL=35
JSONPATH=36
XMLPATH=37
CSVPERROW=38
QUERY_PART=39
GREATER_SYMBOL_QUERY=40
WS_QUERY=41
LESS_SYMBOL_QUERY=42
STRING_OR_VAR_QUERY=43
URI_VAR_QUERY=44
WS_DECLARATION=45
'['=14
']'=15
'('=16
')'=17
'{'=18
'}'=19
';'=20
'.'=21
'+'=22
','=23
'"'=24
AUTOINCREMENT=6
EXPRESSION=7
UNION=8
JOIN=9
MATCHER=10
AS=11
MATCHING=12
LESS_SYMBOL=13
GREATER_SYMBOL=14
BRACKET_LEFT=15
BRACKET_RIGHT=16
PAREN_LEFT=17
PAREN_RIGHT=18
BRACE_LEFT=19
BRACE_RIGHT=20
SEMICOLON=21
DOT=22
ADD=23
COMMA=24
QUOTE=25
AND=26
A=27
STRING_OR_VAR=28
URI_VAR=29
STRINGOPERATOR=30
XMLSCHEMADATATYPE=31
SHAPELINK=32
LANGTAG=33
COMMENT=34
WS=35
URL=36
JSONPATH=37
XMLPATH=38
CSVPERROW=39
QUERY_PART=40
GREATER_SYMBOL_QUERY=41
WS_QUERY=42
LESS_SYMBOL_QUERY=43
STRING_OR_VAR_QUERY=44
URI_VAR_QUERY=45
WS_DECLARATION=46
LESS_SYMBOL_AUTOINCREMENT=47
TO=48
BY=49
ADD_AUTOINCREMENT=50
DIGITS=51
STRING_OR_VAR_AUTOINCREMENT=52
STRINGOPERATOR_AUTOINCREMENT=53
GREATER_SYMBOL_AUTOINCREMENT=54
WS_AUTOINCREMENT=55
'['=15
']'=16
'('=17
')'=18
'{'=19
'}'=20
';'=21
'.'=22
','=24
'"'=25
11 changes: 7 additions & 4 deletions src/main/java/es/weso/antlr/ShExMLParser.g4
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,23 @@ package es.weso.antlr;
options{tokenVocab=ShExMLLexer;}

shExML: decl* shape* ;
decl: (source | prefix | query | expression | matcher | iterator) ;
decl: (source | prefix | query | expression | matcher | iterator | autoincrement) ;
prefix: PREFIX variable LESS_SYMBOL_QUERY URL GREATER_SYMBOL_QUERY ;
source: SOURCE variable LESS_SYMBOL_QUERY URL GREATER_SYMBOL_QUERY ;
iterator: ITERATOR variable LESS_SYMBOL_QUERY queryClause GREATER_SYMBOL_QUERY '{' field+ nestedIterator* '}' ;
nestedIterator: ITERATOR variable LESS_SYMBOL_QUERY QUERY_PART GREATER_SYMBOL_QUERY '{' field+ nestedIterator* '}' ;
field: FIELD variable LESS_SYMBOL_QUERY QUERY_PART GREATER_SYMBOL_QUERY ;
query: QUERY variable LESS_SYMBOL_QUERY queryClause GREATER_SYMBOL_QUERY ;
autoincrement: AUTOINCREMENT variable LESS_SYMBOL_AUTOINCREMENT
(STRINGOPERATOR_AUTOINCREMENT ADD_AUTOINCREMENT)? DIGITS (TO DIGITS)? (BY DIGITS)?
(ADD_AUTOINCREMENT STRINGOPERATOR_AUTOINCREMENT)? GREATER_SYMBOL_AUTOINCREMENT ;
expression: EXPRESSION variable LESS_SYMBOL exp GREATER_SYMBOL ;
matcher: MATCHER variable LESS_SYMBOL matchers GREATER_SYMBOL ;
matchers: replacedStrings AS (STRING_OR_VAR | STRINGOPERATOR)
| matchers AND replacedStrings AS (STRING_OR_VAR | STRINGOPERATOR) ;
replacedStrings: (STRING_OR_VAR | STRINGOPERATOR) ',' replacedStrings | (STRING_OR_VAR | STRINGOPERATOR) ;
exp: union | join | stringOperation | iteratorQuery ;
stringOperation: iteratorQuery '+' STRINGOPERATOR '+' iteratorQuery ;
stringOperation: iteratorQuery ADD STRINGOPERATOR ADD iteratorQuery ;
iteratorQuery: variable '.' composedVariable ;
composedVariable: variable | variable '.' composedVariable ;
queryClause: JSONPATH QUERY_PART | XMLPATH QUERY_PART | CSVPERROW ;
Expand All @@ -30,10 +33,10 @@ leftUnionOption: iteratorQuery | stringOperation ;
rightUnionOption: iteratorQuery | union | stringOperation ;
shape: tripleElement prefixVar '[' (exp | variable) ']' '{' (predicateObject ';')* predicateObject? '}' ;
predicateObject: predicate (objectElement | shapeLink | literalValue) ;
objectElement: prefixVar? '[' (exp | variable) (MATCHING variable)? ']' (XMLSCHEMADATATYPE | LANGTAG)? ;
objectElement: prefixVar? ('[' (exp | variable) (MATCHING variable)? ']' | STRINGOPERATOR) (XMLSCHEMADATATYPE | LANGTAG)? ;
shapeLink: SHAPELINK ;
predicate: (literalValue | A) ;
literalValue: prefixVar variable ;
tripleElement: predicate | LESS_SYMBOL variable GREATER_SYMBOL ;
prefixVar: variable | URL ;
variable: STRING_OR_VAR | URI_VAR | STRING_OR_VAR_QUERY | URI_VAR_QUERY ;
variable: STRING_OR_VAR | URI_VAR | STRING_OR_VAR_QUERY | URI_VAR_QUERY | STRING_OR_VAR_AUTOINCREMENT ;
25 changes: 23 additions & 2 deletions src/main/java/es/weso/antlr/ShExMLParser.interp

Large diffs are not rendered by default.

Loading

0 comments on commit 8e8349f

Please sign in to comment.