blob: a92e1ff7c5ba3e87f2b517256d2d8f8d9a431b12 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
This is exyapps, a LL(1) parser generator.
It is derived from yapps ( http://theory.stanford.edu/~amitp/yapps/ )
by Amit J. Patel <amitp@cs.stanford.edu>. He is no longer maintaining
it, and there seem to be several forks out there, all with varying
version numbers. This copy was derived from some patches included
with Debian by Matthias Urlichs <smurf@debian.org>
Since I want to make some of my own specific changes, I'm actually changing
the name so this package can have a distinctive identity.
Installing / using exyapps
--
python setup.py install
cd /your/project
exyapps my_grammar.exy
For now, the package is compatible with yapps; Someday, I want to
make parsers run without the exyapps package installed.
VIM
--
Put this in .vimrc
autocmd BufRead,BufNewFile *.exy set filetype=python
What is here?
--
Makefile
yapps_grammar.g
yapps_grammar.g is the source code for exyapps/grammar.py
type "make" to re-generate it, then do an svn commit
doc
looks like latex source for the documentation
examples
duh
exyapps
the exyapps package that gets installed
scripts
"exyapps" command that compiles a parser into python code.
setup.py
test
not actual tests, but apparently some interesting input to
run through the parser for testing
New Features
--
- You can pass a data object to the parser for it to use as
parser-global data. I know the OO way is to subclass the parser
object and hope you don't accidentally override/smash anything
important, but this is easier to use in a particular application
I have in mind.
|