control-character-class hex-digit-class java-blank-class c-identifier-class
unmatchable-class terminator-class word-boundary-class ;
-SINGLETONS: beginning-of-input ^ end-of-input $ end-of-file
+SINGLETONS: beginning-of-input ^crlf end-of-input $crlf end-of-file
^unix $unix word-break ;
TUPLE: range-class { from read-only } { to read-only } ;
} 2&&
] ;
-M: $ question>quot
+M: $crlf question>quot
drop [ { [ length = ] [ ?nth "\r\n" member? ] } 2|| ] ;
-M: ^ question>quot
+M: ^crlf question>quot
drop [ { [ drop zero? ] [ [ 1 - ] dip ?nth "\r\n" member? ] } 2|| ] ;
M: $unix question>quot
drop [ unix-lines option? ] 2dip swap ?
] [ 2nip ] if ;
-M: $ modify-epsilon
+M: $crlf modify-epsilon
$unix end-of-input line-option ;
-M: ^ modify-epsilon
+M: ^crlf modify-epsilon
^unix beginning-of-input line-option ;
M: tagged-epsilon nfa-node
EscapeSequence = "\\" Escape:e => [[ e ]]
Character = EscapeSequence
- | "$" => [[ $ <tagged-epsilon> ]]
- | "^" => [[ ^ <tagged-epsilon> ]]
+ | "$" => [[ $crlf <tagged-epsilon> ]]
+ | "^" => [[ ^crlf <tagged-epsilon> ]]
| . ?[ allowed-char? ]?
AnyRangeCharacter = !("&&"|"||"|"--"|"~~") (EscapeSequence | .)