Skip to content

Add support for modes such as (?i) #35

@exyzzy

Description

@exyzzy

Trying in lexer.go to parse:
lexer.Add([]byte((?i)(varchar\([0-9]+\))), token("VARCHARID"))

results: (debug=true)
...
01/14 20:10:48 enter alternation 0 '(?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter atomicOps 0 '(?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter atomicOp 0 '(?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter atomic 0 '(?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter char 0 '(?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter CHAR 0 '(?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit CHAR 0 '(?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter charRange 0 '(?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit char 0 '(?i)(varchar([0-9]+))'
2020/01/14 20:10:48 char Regex parse error in production 'charClass' : at index 0 line 0 column 1 '(?i)(varchar([0-9]+))' : expected '[' at 0 got '(' of '(?i)(varchar([0-9]+))'
Regex parse error in production 'CHAR' : at index 0 line 0 column 1 '(?i)(varchar([0-9]+))' : unexpected operator, (
Regex parse error in production 'char' : at index 0 line 0 column 1 '(?i)(varchar([0-9]+))' : Expected a CHAR or charRange at 0, (?i)(varchar([0-9]+))
2020/01/14 20:10:48 enter group 0 '(?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter alternation 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter atomicOps 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter atomicOp 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter atomic 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter char 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter CHAR 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit CHAR 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter charRange 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit char 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 char Regex parse error in production 'charClass' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : expected '[' at 1 got '?' of '?i)(varchar([0-9]+))'
Regex parse error in production 'CHAR' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : unexpected operator, ?
Regex parse error in production 'char' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : Expected a CHAR or charRange at 1, (?i)(varchar([0-9]+))
2020/01/14 20:10:48 enter group 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit group 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 group Regex parse error in production 'group' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : expected '(' at 1 got '?' of '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit atomic 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 atomic Regex parse error in production 'group' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : expected '(' at 1 got '?' of '?i)(varchar([0-9]+))'
Regex parse error in production 'charClass' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : expected '[' at 1 got '?' of '?i)(varchar([0-9]+))'
Regex parse error in production 'CHAR' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : unexpected operator, ?
Regex parse error in production 'char' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : Expected a CHAR or charRange at 1, (?i)(varchar([0-9]+))
Regex parse error in production 'atomic' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : Expected group or char
2020/01/14 20:10:48 exit atomicOp 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit atomicOps 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter alternation_ 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit alternation_ 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit alternation 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit group 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 group Regex parse error in production 'group' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : expected ')' at 1 got '?' of '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit atomic 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 atomic Regex parse error in production 'group' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : expected ')' at 1 got '?' of '?i)(varchar([0-9]+))'
Regex parse error in production 'charClass' : at index 0 line 0 column 1 '(?i)(varchar([0-9]+))' : expected '[' at 0 got '(' of '(?i)(varchar([0-9]+))'
Regex parse error in production 'CHAR' : at index 0 line 0 column 1 '(?i)(varchar([0-9]+))' : unexpected operator, (
Regex parse error in production 'char' : at index 0 line 0 column 1 '(?i)(varchar([0-9]+))' : Expected a CHAR or charRange at 0, (?i)(varchar([0-9]+))
Regex parse error in production 'atomic' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : Expected group or char
2020/01/14 20:10:48 exit atomicOp 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit atomicOps 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 enter alternation_ 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit alternation_ 1 '?i)(varchar([0-9]+))'
2020/01/14 20:10:48 exit alternation 1 '?i)(varchar([0-9]+))'
panic: Regex parse error in production 'group' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : expected ')' at 1 got '?' of '?i)(varchar([0-9]+))'
Regex parse error in production 'charClass' : at index 0 line 0 column 1 '(?i)(varchar([0-9]+))' : expected '[' at 0 got '(' of '(?i)(varchar([0-9]+))'
Regex parse error in production 'CHAR' : at index 0 line 0 column 1 '(?i)(varchar([0-9]+))' : unexpected operator, (
Regex parse error in production 'char' : at index 0 line 0 column 1 '(?i)(varchar([0-9]+))' : Expected a CHAR or charRange at 0, (?i)(varchar([0-9]+))
Regex parse error in production 'atomic' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : Expected group or char
Regex parse error in production 'group' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : expected '(' at 1 got '?' of '?i)(varchar([0-9]+))'
Regex parse error in production 'charClass' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : expected '[' at 1 got '?' of '?i)(varchar([0-9]+))'
Regex parse error in production 'CHAR' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : unexpected operator, ?
Regex parse error in production 'char' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : Expected a CHAR or charRange at 1, (?i)(varchar([0-9]+))
Regex parse error in production 'atomic' : at index 1 line 0 column 2 '?i)(varchar([0-9]+))' : Expected group or char
Regex parse error in production 'Parse' : at index 0 line 0 column 1 '(?i)(varchar([0-9]+))' : unconsumed input

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions