Handbook
Glossary
parser-quot ( peg -- quot )
Vocabulary
peg
Inputs
peg
an
object
Outputs
quot
an
object
Definition
IN:
peg
GENERIC:
parser-quot
( peg -- quot )
Methods
USING:
accessors
kernel
peg
peg.private
;
M:
action-parser
parser-quot
[
parser>>
execute-parser-quot
]
[
quot>>
]
bi
'[
@
_
check-action
]
;
USING:
accessors
combinators
peg
peg.private
;
M:
box-parser
parser-quot
quot>>
( -- parser )
call-effect
execute-parser-quot
;
USING:
accessors
combinators.short-circuit
peg
peg.private
;
M:
choice-parser
parser-quot
parsers>>
execute-parsers-quots
'[
_
0||
]
;
USING:
accessors
assocs
kernel
namespaces
peg
peg.private
quotations
words
;
M:
delay-parser
parser-quot
quot>>
gensym
[
delayed
get
set-at
]
keep
1quotation
;
USING:
accessors
peg
peg.private
;
M:
ensure-not-parser
parser-quot
parser>>
execute-parser-quot
'[
input-slice
@
check-ensure-not
]
;
USING:
accessors
peg
peg.private
;
M:
ensure-parser
parser-quot
parser>>
execute-parser-quot
'[
input-slice
@
check-ensure
]
;
USING:
accessors
kernel
peg
peg.parsers.private
peg.private
sequences
;
M:
just-parser
parser-quot
p1>>
execute-parser-quot
[
[
[
remaining>>
empty?
]
1guard
]
?call
]
compose
;
USING:
accessors
kernel
peg
peg.parsers.private
peg.private
;
M:
list-parser
parser-quot
[
item>>
execute-parser-quot
]
[
separator>>
execute-parser-quot
over
]
[
repeat1?>>
]
tri
'[
input-slice
V{
}
clone
<parse-result>
_
parse-seq-element
[
[
@
_
[
f
]
if
]
swap
_
[
repeat1-loop
]
[
repeat0-loop
]
if
]
[
f
]
if*
]
;
USING:
accessors
peg
peg.private
;
M:
optional*-parser
parser-quot
parser>>
execute-parser-quot
'[
@
check-optional*
]
;
USING:
accessors
peg
peg.private
;
M:
optional-parser
parser-quot
parser>>
execute-parser-quot
'[
@
check-optional
]
;
USING:
accessors
kernel
peg
peg.private
;
M:
range-parser
parser-quot
[
min>>
]
[
max>>
]
bi
'[
input-slice
_
_
parse-range
]
;
USING:
accessors
kernel
peg
peg.private
;
M:
repeat0-parser
parser-quot
parser>>
execute-parser-quot
'[
input-slice
V{
}
clone
<parse-result>
_
swap
repeat0-loop
]
;
USING:
accessors
kernel
peg
peg.private
;
M:
repeat1-parser
parser-quot
parser>>
execute-parser-quot
'[
input-slice
V{
}
clone
<parse-result>
_
swap
repeat1-loop
]
;
USING:
accessors
peg
peg.private
;
M:
satisfy-parser
parser-quot
quot>>
'[
input-slice
_
parse-satisfy
]
;
USING:
accessors
kernel
peg
peg.private
;
M:
semantic-parser
parser-quot
[
parser>>
execute-parser-quot
]
[
quot>>
]
bi
'[
@
_
check-semantic
]
;
USING:
accessors
combinators.short-circuit
kernel
peg
peg.private
sequences
;
M:
seq-parser
parser-quot
parsers>>
execute-parsers-quots
[
'[
_
parse-seq-element
]
]
map
'[
input-slice
V{
}
clone
<parse-result>
_
1&&
]
;
USING:
accessors
namespaces
peg
peg.private
sequences
unicode
;
M:
sp-parser
parser-quot
parser>>
execute-parser-quot
'[
input-slice
[
blank?
]
trim-head-slice
input-from
pos
set
@
]
;
USING:
accessors
peg
peg.private
;
M:
token-parser
parser-quot
symbol>>
'[
input-slice
_
parse-token
]
;