Allow vertical bars as parts of operators.
This commit is contained in:
@@ -21,7 +21,7 @@ $bindigit = [01]
|
|||||||
$typestart = [A-Z\_]
|
$typestart = [A-Z\_]
|
||||||
$valstart = [a-z\_]
|
$valstart = [a-z\_]
|
||||||
$identrest = [a-zA-Z0-9\_\.]
|
$identrest = [a-zA-Z0-9\_\.]
|
||||||
$opident = [\~\!\@\#\$\%\^\&\*\+\-\=\.\<\>\?\_]
|
$opident = [\~\!\@\#\$\%\^\&\*\+\-\=\.\<\>\?\_\|]
|
||||||
$escape_char = [abfnrtv'\"\\]
|
$escape_char = [abfnrtv'\"\\]
|
||||||
|
|
||||||
:-
|
:-
|
||||||
@@ -58,7 +58,6 @@ $escape_char = [abfnrtv'\"\\]
|
|||||||
"]" { emitT RSquare }
|
"]" { emitT RSquare }
|
||||||
"{" { emitT LBrace }
|
"{" { emitT LBrace }
|
||||||
"}" { emitT RBrace }
|
"}" { emitT RBrace }
|
||||||
"|" { emitT Bar }
|
|
||||||
";" { emitT Semi }
|
";" { emitT Semi }
|
||||||
"," { emitT Comma }
|
"," { emitT Comma }
|
||||||
"`" { emitT BTick }
|
"`" { emitT BTick }
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import qualified Codec.Binary.UTF8.Generic as UTF8
|
|||||||
|
|
||||||
-- symbols
|
-- symbols
|
||||||
'=' { Lexeme $$ (TokOpIdent "=") }
|
'=' { Lexeme $$ (TokOpIdent "=") }
|
||||||
|
'|' { Lexeme $$ (TokOpIdent "|") }
|
||||||
'->' { Lexeme $$ (TokOpIdent "->") }
|
'->' { Lexeme $$ (TokOpIdent "->") }
|
||||||
'@' { Lexeme $$ (TokOpIdent "@") }
|
'@' { Lexeme $$ (TokOpIdent "@") }
|
||||||
'::' { Lexeme $$ (TokOpIdent "::") }
|
'::' { Lexeme $$ (TokOpIdent "::") }
|
||||||
@@ -45,7 +46,6 @@ import qualified Codec.Binary.UTF8.Generic as UTF8
|
|||||||
']' { Lexeme $$ RSquare }
|
']' { Lexeme $$ RSquare }
|
||||||
'{' { Lexeme $$ LBrace }
|
'{' { Lexeme $$ LBrace }
|
||||||
'}' { Lexeme $$ RBrace }
|
'}' { Lexeme $$ RBrace }
|
||||||
'|' { Lexeme $$ Bar }
|
|
||||||
';' { Lexeme $$ Semi }
|
';' { Lexeme $$ Semi }
|
||||||
',' { Lexeme $$ Comma }
|
',' { Lexeme $$ Comma }
|
||||||
'`' { Lexeme $$ BTick }
|
'`' { Lexeme $$ BTick }
|
||||||
@@ -229,6 +229,7 @@ optional_type :: { Maybe Type }
|
|||||||
value_ident :: { QualifiedName }
|
value_ident :: { QualifiedName }
|
||||||
: VAL_IDENT { makeQualified $1 }
|
: VAL_IDENT { makeQualified $1 }
|
||||||
| '(' OP_IDENT ')' { makeQualified $2 }
|
| '(' OP_IDENT ')' { makeQualified $2 }
|
||||||
|
| '(' '|' ')' { makeQualified (Lexeme $2 (TokOpIdent "|")) }
|
||||||
|
|
||||||
value_body :: { (Position, Expr Position) }
|
value_body :: { (Position, Expr Position) }
|
||||||
: '=' expression { ($1, $2) }
|
: '=' expression { ($1, $2) }
|
||||||
|
|||||||
Reference in New Issue
Block a user