Skip to content
Snippets Groups Projects
Commit bf8715bf authored by Daniel Hornung's avatar Daniel Hornung
Browse files

Dummy...

parent 935cdc90
No related branches found
No related tags found
No related merge requests found
lexer grammar DatetimeLexer;
NUM:
('0' .. '9')+
;
HYPHEN:
'-'
;
TXT:
('a'..'z' | 'A'..'Z' | '_' | '-' {_input.LA(1) != '>'}? | '+' | '&' | ';' | ',' | '$' | ':' | '%' | '^' | '~' {_input.LA(1) != '='}? | '`' | '´' | 'ö' | 'ä' | 'ß' | 'ü' | 'Ö' | 'Ä' | 'Ü' | '@' | '[' | ']' | '{' | '}' )+
;
COLON:
':'
;
DOT:
'.'
;
fragment
ESC_MARKER:
'\\'
;
fragment
DOUBLE_QUOTE:
'"'
;
fragment
SINGLE_QUOTE:
'\''
;
SINGLE_QUOTE_START:
'\'' -> pushMode(SINGLE_QUOTE_MODE)
;
DOUBLE_QUOTE_START:
'"' -> pushMode(DOUBLE_QUOTE_MODE)
;
mode SINGLE_QUOTE_MODE;
SINGLE_QUOTE_ESCAPED_CHAR:
ESC_MARKER
( '\'' | '\\' | '*' )
;
SINGLE_QUOTE_END:
'\'' -> mode(DEFAULT_MODE)
;
SINGLE_QUOTE_STAR:
'*'
;
SINGLE_QUOTE_ANY_CHAR:
~('\''|'\\'|'*')+
;
mode DOUBLE_QUOTE_MODE;
DOUBLE_QUOTE_ESCAPED_CHAR:
ESC_MARKER
( '"' | '\\' | '*' )
;
DOUBLE_QUOTE_END:
'"' -> mode(DEFAULT_MODE)
;
DOUBLE_QUOTE_STAR:
'*'
;
DOUBLE_QUOTE_ANY_CHAR:
~('"'|'\\'|'*')+
;
parser grammar DatetimeParser;
options { tokenVocab = DatetimeLexer; }
datetime:
(
double_quoted_datetime
| single_quoted_datetime
| iso_datetime
)
;
single_quoted_datetime returns [String text] locals [StringBuffer sb]
@init{$sb = new StringBuffer();}
@after{$text = $sb.toString();}
:
SINGLE_QUOTE_START
(
d = iso_datetime {$sb.append($d.text);}
)
SINGLE_QUOTE_END
;
double_quoted_datetime returns [String text] locals [StringBuffer sb]
@init{$sb = new StringBuffer();}
@after{$text = $sb.toString(); }
:
DOUBLE_QUOTE_START
(
d = iso_datetime { $sb.append($d.text); }
)
DOUBLE_QUOTE_END
;
iso_datetime
:
NUM // year
(
HYPHEN NUM // mon
(
HYPHEN NUM // day of mon
(
(m=TXT {$m.text.equals("T")}?)?// compliance with iso datetime
NUM // hour
(
COLON NUM // minut
(
COLON NUM // sec
(
DOT NUM // millisec
)?
)?
)?
)?
)?
)?
;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment