Wolfram Language
Paclet Repository
Community-contributed installable additions to the Wolfram Language
Primary Navigation
Categories
Cloud & Deployment
Core Language & Structure
Data Manipulation & Analysis
Engineering Data & Computation
External Interfaces & Connections
Financial Data & Computation
Geographic Data & Computation
Geometry
Graphs & Networks
Higher Mathematical Computation
Images
Knowledge Representation & Natural Language
Machine Learning
Notebook Documents & Presentation
Scientific and Medical Data & Computation
Social, Cultural & Linguistic Data
Strings & Text
Symbolic & Numeric Computation
System Operation & Setup
Time-Related Computation
User Interface Construction
Visualization & Graphics
Random Paclet
Alphabetical List
Using Paclets
Create a Paclet
Get Started
Download Definition Notebook
Learn More about
Wolfram Language
PatternMatcher
Guides
A Virtual Machine for the Pattern Matcher
Symbols
CompilePatternToBytecode
CreatePatternMatcherVirtualMachine
PatternBytecodeDisassemble
PatternBytecodeInformation
PatternBytecode
PatternBytecodeQ
PatternMatcherEnableTrace
PatternMatcherExecute
PatternMatcherMatch
PatternMatcherMatchQ
PatternMatcherReplace
PatternMatcherStep
PatternMatcherTraceEnabled
PatternMatcherTraceEnabledQ
PatternMatcherVirtualMachine
PatternToMatchFunction
DanielS`PatternMatcher`
P
a
t
t
e
r
n
M
a
t
c
h
e
r
V
i
r
t
u
a
l
M
a
c
h
i
n
e
P
a
t
t
e
r
n
M
a
t
c
h
e
r
V
i
r
t
u
a
l
M
a
c
h
i
n
e
[
…
]
r
e
p
r
e
s
e
n
t
s
a
v
i
r
t
u
a
l
m
a
c
h
i
n
e
t
h
a
t
w
i
l
l
m
a
t
c
h
a
n
e
x
p
r
e
s
s
i
o
n
u
s
i
n
g
p
a
t
t
e
r
n
b
y
t
e
c
o
d
e
.
D
e
t
a
i
l
s
a
n
d
O
p
t
i
o
n
s
Examples
(
5
)
Basic Examples
(
2
)
Compile a pattern to bytecode:
I
n
[
1
]
:
=
b
c
=
C
o
m
p
i
l
e
P
a
t
t
e
r
n
T
o
B
y
t
e
c
o
d
e
[
_
I
n
t
e
g
e
r
]
O
u
t
[
1
]
=
P
a
t
t
e
r
n
B
y
t
e
c
o
d
e
P
a
t
t
e
r
n
:
_
I
n
t
e
g
e
r
E
x
p
r
r
e
g
i
s
t
e
r
s
c
o
u
n
t
:
1
B
o
o
l
r
e
g
i
s
t
e
r
s
c
o
u
n
t
:
1
I
n
s
t
r
u
c
t
i
o
n
c
o
u
n
t
:
9
Create a virtual machine from the generated bytecode:
I
n
[
2
]
:
=
v
m
=
C
r
e
a
t
e
P
a
t
t
e
r
n
M
a
t
c
h
e
r
V
i
r
t
u
a
l
M
a
c
h
i
n
e
[
b
c
]
O
u
t
[
2
]
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
V
i
r
t
u
a
l
M
a
c
h
i
n
e
I
n
i
t
i
a
l
i
z
e
d
:
T
r
u
e
H
a
l
t
e
d
:
F
a
l
s
e
P
r
o
g
r
a
m
c
o
u
n
t
e
r
:
0
C
y
c
l
e
s
:
0
Execute the virtual machine against different expressions:
I
n
[
3
]
:
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
v
m
,
4
2
]
O
u
t
[
3
]
=
R
e
s
u
l
t
T
r
u
e
,
C
y
c
l
e
s
E
x
e
c
u
t
e
d
6
,
B
i
n
d
i
n
g
s
I
n
[
4
]
:
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
v
m
,
3
.
1
4
]
O
u
t
[
4
]
=
R
e
s
u
l
t
F
a
l
s
e
,
C
y
c
l
e
s
E
x
e
c
u
t
e
d
4
,
B
i
n
d
i
n
g
s
Create a virtual machine for a pattern with variable bindings:
I
n
[
1
]
:
=
b
c
=
C
o
m
p
i
l
e
P
a
t
t
e
r
n
T
o
B
y
t
e
c
o
d
e
[
f
[
x
_
,
x
_
]
]
;
v
m
=
C
r
e
a
t
e
P
a
t
t
e
r
n
M
a
t
c
h
e
r
V
i
r
t
u
a
l
M
a
c
h
i
n
e
[
b
c
]
O
u
t
[
1
]
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
V
i
r
t
u
a
l
M
a
c
h
i
n
e
I
n
i
t
i
a
l
i
z
e
d
:
T
r
u
e
H
a
l
t
e
d
:
F
a
l
s
e
P
r
o
g
r
a
m
c
o
u
n
t
e
r
:
0
C
y
c
l
e
s
:
0
Execute the virtual machine:
I
n
[
2
]
:
=
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
[
v
m
,
f
[
5
,
5
]
]
O
u
t
[
2
]
=
R
e
s
u
l
t
T
r
u
e
,
C
y
c
l
e
s
E
x
e
c
u
t
e
d
2
2
,
B
i
n
d
i
n
g
s
G
l
o
b
a
l
`
x
5
S
c
o
p
e
(
1
)
P
r
o
p
e
r
t
i
e
s
&
R
e
l
a
t
i
o
n
s
(
2
)
S
e
e
A
l
s
o
C
r
e
a
t
e
P
a
t
t
e
r
n
M
a
t
c
h
e
r
V
i
r
t
u
a
l
M
a
c
h
i
n
e
▪
P
a
t
t
e
r
n
B
y
t
e
c
o
d
e
▪
C
o
m
p
i
l
e
P
a
t
t
e
r
n
T
o
B
y
t
e
c
o
d
e
▪
P
a
t
t
e
r
n
M
a
t
c
h
e
r
E
x
e
c
u
t
e
▪
P
a
t
t
e
r
n
M
a
t
c
h
e
r
M
a
t
c
h
Q
▪
P
a
t
t
e
r
n
M
a
t
c
h
e
r
R
e
p
l
a
c
e
R
e
l
a
t
e
d
G
u
i
d
e
s
▪
A
V
i
r
t
u
a
l
M
a
c
h
i
n
e
f
o
r
t
h
e
P
a
t
t
e
r
n
M
a
t
c
h
e
r
"
"