Skip to content

Commit

Permalink
Merge pull request #37 from herminiogg/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
herminiogg authored Oct 31, 2019
2 parents 6dc455d + 37e0fb7 commit cce340c
Show file tree
Hide file tree
Showing 23 changed files with 1,278 additions and 707 deletions.
4 changes: 3 additions & 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.1.0"
version := "0.2.0"

scalaVersion := "2.12.4"

Expand All @@ -28,6 +28,8 @@ libraryDependencies += "info.picocli" % "picocli" % "4.0.4"

libraryDependencies += "org.slf4j" % "slf4j-nop" % "1.7.27"

libraryDependencies += "com.github.tototoshi" %% "scala-csv" % "1.3.6"

assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
Expand Down
59 changes: 42 additions & 17 deletions src/main/java/es/weso/antlr/ShExMLLexer.g4
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,17 @@ lexer grammar ShExMLLexer;
package es.weso.antlr;
}

PREFIX: 'PREFIX' -> mode(DECLARATION_CONTENT) ;
SOURCE: 'SOURCE' -> mode(DECLARATION_CONTENT) ;
QUERY: 'QUERY' ;
ITERATOR: 'ITERATOR' -> mode(DECLARATION_CONTENT) ;
FIELD: 'FIELD' -> mode(DECLARATION_CONTENT) ;
EXPRESSION: 'EXPRESSION' ;
UNION: 'UNION' ;
JOIN: 'JOIN' ;
MATCHER: 'MATCHER' ;
AS: 'AS' ;
MATCHING: 'MATCHING' ;
QUERY_SET: 'QUERY_SET' ;
EXPRESSION_SET: 'EXPRESSION_SET' ;
PREFIX: P R E F I X -> mode(DECLARATION_CONTENT) ;
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) ;
EXPRESSION: E X P R E S S I O N ;
UNION: U N I O N ;
JOIN: J O I N ;
MATCHER: M A T C H E R ;
AS: A S ;
MATCHING: M A T C H I N G ;
LESS_SYMBOL: '<' ;
GREATER_SYMBOL: '>' ;
BRACKET_LEFT: '[' ;
Expand All @@ -27,23 +25,25 @@ BRACE_LEFT: '{' ;
BRACE_RIGHT: '}' ;
SEMICOLON: ';' ;
DOT: '.' ;
AT: '@' ;
ADD: '+' ;
COMMA: ',' ;
QUOTE: '"' ;
AND: '&' | 'AND' ;
A: 'a' ;
A: ('a' | 'A');
STRING_OR_VAR: LETTER (LETTER | DIGIT | '_')* ;
URI_VAR: (LETTER | DIGIT | '_')* ':' ;
STRINGOPERATOR: '"' (LETTER | DIGIT | ALLOWED_CHARACTERS | ' ')+ '"' ;
XMLSCHEMADATATYPE: XMLSCHEMADATATYPEPREFIX ':' ALLOWEDTYPES ;
SHAPELINK: '@' (URI_VAR STRING_OR_VAR | '<' STRING_OR_VAR '>') ;
LANGTAG: '@' LETTER+ ('-' (LETTER | DIGIT)+)* ;
COMMENT: '#' ~[\r\n]* -> skip ;
WS: [ \t\n\r] -> skip ;

mode QUERY_CONTENT ;
URL: ('http' | 'https' | 'file') '://' (LETTER | DIGIT | ALLOWED_CHARACTERS)* ;
JSONPATH: 'jsonpath: ' (LETTER | DIGIT | ALLOWED_CHARACTERS)+ ;
XMLPATH: 'xpath: ' (LETTER | DIGIT | ALLOWED_CHARACTERS)+ ;
JSONPATH: J S O N P A T H ':' ;
XMLPATH: X P A T H ':' ;
CSVPERROW: C S V P E R R O W ;
QUERY_PART: (LETTER | DIGIT | ALLOWED_CHARACTERS)+ ;
GREATER_SYMBOL_QUERY: '>' -> mode(DEFAULT_MODE) ;
WS_QUERY: [ \t\n\r] -> skip ;
Expand All @@ -66,3 +66,28 @@ fragment ALLOWEDTYPES: ('string' | 'boolean' | 'decimal' | 'integer' | 'double'
| 'NMTOKEN' | 'Name' | 'NCName') ;
fragment ALLOWED_CHARACTERS: '[' | ']' | '*' | '_' | '/' | '\\' | '@' | '.' | ',' | '%' | '-' | '(' | ')'
| '?' | '=' | '&' | '#' | '$' | ':' | '^' | '\'' ;
fragment B:('b'|'B');
fragment C:('c'|'C');
fragment D:('d'|'D');
fragment E:('e'|'E');
fragment F:('f'|'F');
fragment G:('g'|'G');
fragment H:('h'|'H');
fragment I:('i'|'I');
fragment J:('j'|'J');
fragment K:('k'|'K');
fragment L:('l'|'L');
fragment M:('m'|'M');
fragment N:('n'|'N');
fragment O:('o'|'O');
fragment P:('p'|'P');
fragment Q:('q'|'Q');
fragment R:('r'|'R');
fragment S:('s'|'S');
fragment T:('t'|'T');
fragment U:('u'|'U');
fragment V:('v'|'V');
fragment W:('w'|'W');
fragment X:('x'|'X');
fragment Y:('y'|'Y');
fragment Z:('z'|'Z');
69 changes: 47 additions & 22 deletions src/main/java/es/weso/antlr/ShExMLLexer.interp

Large diffs are not rendered by default.

615 changes: 325 additions & 290 deletions src/main/java/es/weso/antlr/ShExMLLexer.java

Large diffs are not rendered by default.

91 changes: 38 additions & 53 deletions src/main/java/es/weso/antlr/ShExMLLexer.tokens
Original file line number Diff line number Diff line change
Expand Up @@ -9,63 +9,48 @@ JOIN=8
MATCHER=9
AS=10
MATCHING=11
QUERY_SET=12
EXPRESSION_SET=13
LESS_SYMBOL=14
GREATER_SYMBOL=15
BRACKET_LEFT=16
BRACKET_RIGHT=17
PAREN_LEFT=18
PAREN_RIGHT=19
BRACE_LEFT=20
BRACE_RIGHT=21
SEMICOLON=22
DOT=23
AT=24
ADD=25
COMMA=26
QUOTE=27
AND=28
A=29
STRING_OR_VAR=30
URI_VAR=31
STRINGOPERATOR=32
XMLSCHEMADATATYPE=33
COMMENT=34
WS=35
URL=36
JSONPATH=37
XMLPATH=38
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
'PREFIX'=1
'SOURCE'=2
'QUERY'=3
'ITERATOR'=4
'FIELD'=5
'EXPRESSION'=6
'UNION'=7
'JOIN'=8
'MATCHER'=9
'AS'=10
'MATCHING'=11
'QUERY_SET'=12
'EXPRESSION_SET'=13
'['=16
']'=17
'('=18
')'=19
'{'=20
'}'=21
';'=22
'.'=23
'@'=24
'+'=25
','=26
'"'=27
'a'=29
'['=14
']'=15
'('=16
')'=17
'{'=18
'}'=19
';'=20
'.'=21
'+'=22
','=23
'"'=24
6 changes: 3 additions & 3 deletions src/main/java/es/weso/antlr/ShExMLParser.g4
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@ exp: union | join | stringOperation | iteratorQuery ;
stringOperation: iteratorQuery '+' STRINGOPERATOR '+' iteratorQuery ;
iteratorQuery: variable '.' composedVariable ;
composedVariable: variable | variable '.' composedVariable ;
queryClause: JSONPATH | XMLPATH ;
queryClause: JSONPATH QUERY_PART | XMLPATH QUERY_PART | CSVPERROW ;
join: iteratorQuery UNION iteratorQuery JOIN iteratorQuery ;
union: leftUnionOption UNION rightUnionOption ;
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? ;
shapeLink: '@' tripleElement ;
objectElement: prefixVar? '[' (exp | variable) (MATCHING variable)? ']' (XMLSCHEMADATATYPE | LANGTAG)? ;
shapeLink: SHAPELINK ;
predicate: (literalValue | A) ;
literalValue: prefixVar variable ;
tripleElement: predicate | LESS_SYMBOL variable GREATER_SYMBOL ;
Expand Down
38 changes: 19 additions & 19 deletions src/main/java/es/weso/antlr/ShExMLParser.interp

Large diffs are not rendered by default.

Loading

0 comments on commit cce340c

Please sign in to comment.