Allow vertical bars as parts of operators.

This commit is contained in:
2011-02-04 13:16:37 -05:00
parent 55a3e8795d
commit 56ec6e074a
2 changed files with 3 additions and 3 deletions

View File

@@ -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 }

View File

@@ -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) }