https://github.com/jruby/jay
Jay grammar/parser tool
https://github.com/jruby/jay
Last synced: 2 months ago
JSON representation
Jay grammar/parser tool
- Host: GitHub
- URL: https://github.com/jruby/jay
- Owner: jruby
- Created: 2012-03-07T20:13:17.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2024-06-06T20:30:22.000Z (about 1 year ago)
- Last Synced: 2025-04-15T06:16:32.450Z (2 months ago)
- Language: C
- Homepage:
- Size: 268 KB
- Stars: 2
- Watchers: 5
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README
Awesome Lists containing this project
README
This version of Berkeley Yacc was taken from the BSD-Lite CD and
targeted to Java by Axel T. SchreinerMakefile -> makefile removed Berkeleyisms, call it jay
defs.h eliminate -dlpr options, %union, output_file,
#ident, skeleton.c references
changed line_format to char*error.c eliminate %union
main.c eliminate -dlpr options, %union, output_file
added -c option to influence #line
switched from mktemp() to mkstemp()output.c eliminate -dlpr options, %union, output_file
fix #define, short, -t/yyDebug
respell YYERRCODE, YYTABLESIZE, YYFINAL, YYMAXTOKEN
output trailer last
switch to filter behaviourreader.c eliminate output_file, #ident
#line -> // line, pass //
yyvsp[] -> yyVals[yyTop], yyval -> yyValskeleton.c Java and C# skeletons
test removed
yacc.1 -> ../jay.1 adapted
yyfix.* removed
Types: there is a significant difference. yacc uses %union to cast
the value stack and to select alternatives. This works for
l- and r-values alike. jay uses Object as the value stack and
to set a class. l-values must not be cast. $n should not be
assigned to, but $$ usually is. $n is referenced, but $$ usually
is not. Consequently jay casts $n and $$ but not $<>n and $$.
This makes assignment to $n references to $$ kludgily possible.
As another kludge, to prevent 'untyped' messages and to avoid
unnecessary casts, casts to "Object" are not emitted.Conflicts: the usual type table may be used but conflict/Conflict.jay
demonstrates that a trivial %nonassoc is silently ignored.Changes from 1.0.1 to 1.0.2:
FILES new directory structure under Language Processing
package.html homepage
{cs,java}/skeleton.* min yyErrorFlag is 0 when passed to shift()Changes from 1.0 to 1.0.1:
java/arith/makefile changed CLASSPATH
jay/reader.c(1094) fixed typo -- thanks to [email protected]Changes from 0.9 to 1.0:
Merged C# port from mcs-0.16 at by Miguel
de Icaza . Changed naming conventions in the skeletons.Changes from 0.8 to 0.9:
output.c Tables now written as text, top-level classes gone
skeleton.java Revamped to load tables from resource.
Changes from 0.7 to 0.8:
output.c Each generated table is now encapsulated in a top
level nested class to circumvent Java's 64K code
limit (Thanks to Andre Marburger).skeleton Fixed to access the tables inside the classes.
yydebug/yyPrintStream Fixed NullPointerException introduced by JDK 1.2.