peg: replace uses of digits>integer with string>number.
parent
f59d8ef0c1
commit
b5a671cd88
|
@ -71,7 +71,7 @@ PRIVATE>
|
|||
[ digit? ] satisfy [ digit> ] action ;
|
||||
|
||||
: 'integer' ( -- parser )
|
||||
'digit' repeat1 [ 10 digits>integer ] action ;
|
||||
[ digit? ] satisfy repeat1 [ string>number ] action ;
|
||||
|
||||
: 'string' ( -- parser )
|
||||
[
|
||||
|
|
|
@ -8,7 +8,7 @@ IN: parser-combinators.simple
|
|||
[ digit? ] satisfy [ digit> ] <@ ;
|
||||
|
||||
: 'integer' ( -- parser )
|
||||
'digit' <!+> [ 10 digits>integer ] <@ ;
|
||||
[ digit? ] satisfy <*> [ string>number ] <@ ;
|
||||
|
||||
: 'string' ( -- parser )
|
||||
[ CHAR: " = ] satisfy
|
||||
|
|
|
@ -5,8 +5,7 @@ peg peg.ebnf peg.parsers memoize math accessors ;
|
|||
IN: peg.expr
|
||||
|
||||
EBNF: expr
|
||||
digit = [0-9] => [[ digit> ]]
|
||||
number = (digit)+ => [[ 10 digits>integer ]]
|
||||
number = ([0-9])+ => [[ string>number ]]
|
||||
value = number
|
||||
| ("(" exp ")") => [[ second ]]
|
||||
|
||||
|
|
|
@ -22,7 +22,6 @@ expression = {"+" | "-"}? term { {"+" | "-"} term }*
|
|||
term = factor { {"*" | "/"} factor }*
|
||||
factor = ident | number | "(" expression ")"
|
||||
ident = (([a-zA-Z])+) => [[ >string ]]
|
||||
digit = ([0-9]) => [[ digit> ]]
|
||||
number = (digit)+ => [[ 10 digits>integer ]]
|
||||
number = ([0-9])+ => [[ string>number ]]
|
||||
program = { block "." }
|
||||
;EBNF
|
||||
|
|
Loading…
Reference in New Issue