Handbook
Glossary
nfa-node ( node -- start-state end-state )
Vocabulary
regexp
.
nfa
Inputs
node
an
object
Outputs
start-state
an
object
end-state
an
object
Definition
IN:
regexp.nfa
GENERIC:
nfa-node
( node -- start-state end-state )
Methods
USING:
accessors
kernel
regexp.ast
regexp.nfa
;
M:
alternation
nfa-node
[
first>>
]
[
second>>
]
bi
[
nfa-node
]
bi@
alternate-nodes
;
USING:
accessors
regexp.ast
regexp.nfa
;
M:
capture-group
nfa-node
term>>
nfa-node
;
USING:
accessors
kernel
regexp.ast
regexp.nfa
;
M:
concatenation
nfa-node
[
first>>
]
[
second>>
]
bi
reversed-regexp
option?
[
swap
]
when
[
nfa-node
]
bi@
[
epsilon-transition
]
dip
;
USING:
accessors
regexp.ast
regexp.negation
regexp.nfa
;
M:
negation
nfa-node
term>>
ast>dfa
negate-table
adjoin-dfa
;
USING:
accessors
kernel
math
namespaces
regexp.ast
regexp.captures.private
regexp.nfa
;
M::
numbered-capture
nfa-node
( ast -- start-state end-state )
recording-captures?
get
[
ast
index>>
2
*
capture-save
boa
<tagged-epsilon>
nfa-node
:>
( s0 s1 ) ast
term>>
nfa-node
:>
( s2 s3 ) ast
index>>
2
*
1
+
capture-save
boa
<tagged-epsilon>
nfa-node
:>
( s4 s5 ) s1 s2
epsilon-transition
s3 s4
epsilon-transition
s0 s5
]
[
ast
term>>
nfa-node
]
if
;
USING:
kernel
regexp.nfa
;
M:
object
nfa-node
modify-class
add-simple-entry
;
USING:
accessors
kernel
regexp.ast
regexp.nfa
;
M:
repeated
nfa-node
[
term>>
]
[
times>>
]
bi
<times>
nfa-node
;
USING:
accessors
regexp.ast
regexp.nfa
;
M::
star
nfa-node
( node -- start-state end-state )
node
term>>
nfa-node
:>
( s0 s1 )
next-state
:>
s2
next-state
:>
s3 s1 s0
epsilon-transition
s2 s0
epsilon-transition
s2 s3
epsilon-transition
s1 s3
epsilon-transition
s2 s3
;
USING:
accessors
kernel
regexp.ast
regexp.nfa
;
M:
tagged-epsilon
nfa-node
clone
[
modify-class
]
change-tag
add-simple-entry
;
USING:
accessors
kernel
regexp.ast
regexp.nfa
;
M:
with-options
nfa-node
dup
options>>
[
tree>>
nfa-node
]
using-options
;