{"id":18909230,"url":"https://github.com/jruby/jay","last_synced_at":"2025-04-15T06:16:38.406Z","repository":{"id":2661934,"uuid":"3653093","full_name":"jruby/jay","owner":"jruby","description":"Jay grammar/parser tool","archived":false,"fork":false,"pushed_at":"2024-06-06T20:30:22.000Z","size":274,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-15T06:16:32.450Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jruby.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-03-07T20:13:17.000Z","updated_at":"2024-06-06T20:30:26.000Z","dependencies_parsed_at":"2024-11-08T19:32:32.242Z","dependency_job_id":null,"html_url":"https://github.com/jruby/jay","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jruby","download_url":"https://codeload.github.com/jruby/jay/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249016643,"owners_count":21198833,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T09:32:02.267Z","updated_at":"2025-04-15T06:16:38.390Z","avatar_url":"https://github.com/jruby.png","language":"C","readme":"This version of Berkeley Yacc was taken from the BSD-Lite CD and\ntargeted to Java by Axel T. Schreiner \u003cmailto:ats@cs.rit.edu\u003e\n\nMakefile -\u003e makefile\tremoved Berkeleyisms, call it jay\n\ndefs.h\t\t\teliminate -dlpr options, %union, output_file,\n\t\t\t#ident, skeleton.c references\n\t\t\tchanged line_format to char*\n\nerror.c\t\t\teliminate %union\n\nmain.c\t\t\teliminate -dlpr options, %union, output_file\n\t\t\tadded -c option to influence #line\n\t\t\tswitched from mktemp() to mkstemp()\n\noutput.c\t\teliminate -dlpr options, %union, output_file\n\t\t\tfix #define, short, -t/yyDebug\n\t\t\trespell YYERRCODE, YYTABLESIZE, YYFINAL, YYMAXTOKEN\n\t\t\toutput trailer last\n\t\t\tswitch to filter behaviour\n\nreader.c\t\teliminate output_file, #ident\n\t\t\t#line -\u003e // line, pass //\n\t\t\tyyvsp[] -\u003e yyVals[yyTop], yyval -\u003e yyVal\n\nskeleton.c\t\tJava and C# skeletons\n\ntest\t\t\tremoved\n\nyacc.1 -\u003e ../jay.1\tadapted\n\nyyfix.*\t\t\tremoved\n\nTypes: there is a significant difference. yacc uses %union to cast\nthe value stack and \u003ctag\u003e to select alternatives. This works for\nl- and r-values alike.  jay uses Object as the value stack and\n\u003ctag\u003e to set a class. l-values must not be cast. $n should not be\nassigned to, but $$ usually is. $n is referenced, but $$ usually\nis not. Consequently jay casts $n and $\u003ctag\u003e$ but not $\u003c\u003en and $$.\nThis makes assignment to $n references to $$ kludgily possible.\nAs another kludge, to prevent 'untyped' messages and to avoid\nunnecessary casts, casts to \"Object\" are not emitted.\n\nConflicts: the usual type table may be used but conflict/Conflict.jay\ndemonstrates that a trivial %nonassoc is silently ignored.\n\nChanges from 1.0.1 to 1.0.2:\n\nFILES\t\t\tnew directory structure under Language Processing\npackage.html\t\thomepage\n{cs,java}/skeleton.*\tmin yyErrorFlag is 0 when passed to shift()\n\nChanges from 1.0 to 1.0.1:\n\njava/arith/makefile\tchanged CLASSPATH\njay/reader.c(1094)\tfixed typo -- thanks to etienne.cochard@ciel.com\n\nChanges from 0.9 to 1.0:\n\nMerged C# port from mcs-0.16 at \u003chttp://www.go-mono.org\u003e by Miguel\nde Icaza \u003cmailto:miguel@ximian.com\u003e. Changed naming conventions in the skeletons.\n\nChanges from 0.8 to 0.9:\n\noutput.c\t\tTables now written as text, top-level classes gone\n\nskeleton.java\t\tRevamped to load tables from resource.\n\nChanges from 0.7 to 0.8:\n\noutput.c                Each generated table is now encapsulated in a top\n\t\t\tlevel nested class to circumvent Java's 64K code\n\t\t\tlimit (Thanks to Andre Marburger).\n\nskeleton\t\tFixed to access the tables inside the classes.\n\nyydebug/yyPrintStream\tFixed NullPointerException introduced by JDK 1.2.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjruby%2Fjay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjruby%2Fjay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjruby%2Fjay/lists"}