lrama 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/test.yaml +72 -0
- data/.gitignore +4 -0
- data/.rspec +2 -0
- data/Gemfile +8 -0
- data/LEGAL.md +26 -0
- data/MIT +21 -0
- data/README.md +32 -0
- data/Rakefile +1 -0
- data/doc/TODO.md +50 -0
- data/exe/lrama +7 -0
- data/lib/lrama/command.rb +129 -0
- data/lib/lrama/context.rb +510 -0
- data/lib/lrama/grammar.rb +850 -0
- data/lib/lrama/lexer.rb +349 -0
- data/lib/lrama/output.rb +268 -0
- data/lib/lrama/parser.rb +321 -0
- data/lib/lrama/report.rb +35 -0
- data/lib/lrama/states.rb +1124 -0
- data/lib/lrama/version.rb +3 -0
- data/lib/lrama.rb +9 -0
- data/lrama.gemspec +22 -0
- data/template/bison/yacc.c +1750 -0
- data/template/bison/yacc.h +112 -0
- metadata +67 -0
@@ -0,0 +1,112 @@
|
|
1
|
+
<%# b4_generated_by -%>
|
2
|
+
/* A Bison parser, made by GNU Bison 3.8.2. */
|
3
|
+
|
4
|
+
<%# b4_copyright -%>
|
5
|
+
/* Bison interface for Yacc-like parsers in C
|
6
|
+
|
7
|
+
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
|
8
|
+
Inc.
|
9
|
+
|
10
|
+
This program is free software: you can redistribute it and/or modify
|
11
|
+
it under the terms of the GNU General Public License as published by
|
12
|
+
the Free Software Foundation, either version 3 of the License, or
|
13
|
+
(at your option) any later version.
|
14
|
+
|
15
|
+
This program is distributed in the hope that it will be useful,
|
16
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
17
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
18
|
+
GNU General Public License for more details.
|
19
|
+
|
20
|
+
You should have received a copy of the GNU General Public License
|
21
|
+
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
22
|
+
|
23
|
+
/* As a special exception, you may create a larger work that contains
|
24
|
+
part or all of the Bison parser skeleton and distribute that work
|
25
|
+
under terms of your choice, so long as that work isn't itself a
|
26
|
+
parser generator using the skeleton or a modified version thereof
|
27
|
+
as a parser skeleton. Alternatively, if you modify or redistribute
|
28
|
+
the parser skeleton itself, you may (at your option) remove this
|
29
|
+
special exception, which will cause the skeleton and the resulting
|
30
|
+
Bison output files to be licensed under the GNU General Public
|
31
|
+
License without this special exception.
|
32
|
+
|
33
|
+
This special exception was added by the Free Software Foundation in
|
34
|
+
version 2.2 of Bison. */
|
35
|
+
|
36
|
+
<%# b4_disclaimer -%>
|
37
|
+
/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
|
38
|
+
especially those whose name start with YY_ or yy_. They are
|
39
|
+
private implementation details that can be changed or removed. */
|
40
|
+
|
41
|
+
<%# b4_shared_declarations -%>
|
42
|
+
<%# b4_shared_declarations -%>
|
43
|
+
<%-# b4_cpp_guard_open([b4_spec_mapped_header_file]) -%>
|
44
|
+
<%- if output.spec_mapped_header_file -%>
|
45
|
+
#ifndef <%= output.b4_cpp_guard__b4_spec_mapped_header_file %>
|
46
|
+
# define <%= output.b4_cpp_guard__b4_spec_mapped_header_file %>
|
47
|
+
<%- end -%>
|
48
|
+
<%-# b4_declare_yydebug & b4_YYDEBUG_define -%>
|
49
|
+
/* Debug traces. */
|
50
|
+
#ifndef YYDEBUG
|
51
|
+
# define YYDEBUG 0
|
52
|
+
#endif
|
53
|
+
#if YYDEBUG
|
54
|
+
extern int yydebug;
|
55
|
+
#endif
|
56
|
+
<%-# b4_percent_code_get([[requires]]). %code is not supported -%>
|
57
|
+
|
58
|
+
<%-# b4_token_enums_defines -%>
|
59
|
+
/* Token kinds. */
|
60
|
+
#ifndef YYTOKENTYPE
|
61
|
+
# define YYTOKENTYPE
|
62
|
+
enum yytokentype
|
63
|
+
{
|
64
|
+
<%= output.token_enums -%>
|
65
|
+
};
|
66
|
+
typedef enum yytokentype yytoken_kind_t;
|
67
|
+
#endif
|
68
|
+
|
69
|
+
<%-# b4_declare_yylstype -%>
|
70
|
+
<%-# b4_value_type_define -%>
|
71
|
+
/* Value type. */
|
72
|
+
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
73
|
+
union YYSTYPE
|
74
|
+
{
|
75
|
+
#line <%= output.grammar.union.lineno %> "<%= output.grammar_file_path %>"
|
76
|
+
<%= output.grammar.union.braces_less_code %>
|
77
|
+
#line [@oline@] [@ofile@]
|
78
|
+
|
79
|
+
};
|
80
|
+
typedef union YYSTYPE YYSTYPE;
|
81
|
+
# define YYSTYPE_IS_TRIVIAL 1
|
82
|
+
# define YYSTYPE_IS_DECLARED 1
|
83
|
+
#endif
|
84
|
+
|
85
|
+
<%-# b4_location_type_define -%>
|
86
|
+
/* Location type. */
|
87
|
+
#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
|
88
|
+
typedef struct YYLTYPE YYLTYPE;
|
89
|
+
struct YYLTYPE
|
90
|
+
{
|
91
|
+
int first_line;
|
92
|
+
int first_column;
|
93
|
+
int last_line;
|
94
|
+
int last_column;
|
95
|
+
};
|
96
|
+
# define YYLTYPE_IS_DECLARED 1
|
97
|
+
# define YYLTYPE_IS_TRIVIAL 1
|
98
|
+
#endif
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
<%-# b4_declare_yyerror_and_yylex. Not supported -%>
|
104
|
+
<%-# b4_declare_yyparse -%>
|
105
|
+
int yyparse (<%= output.parse_param %>);
|
106
|
+
|
107
|
+
|
108
|
+
<%-# b4_percent_code_get([[provides]]). %code is not supported -%>
|
109
|
+
<%-# b4_cpp_guard_close([b4_spec_mapped_header_file]) -%>
|
110
|
+
<%- if output.spec_mapped_header_file -%>
|
111
|
+
#endif /* !<%= output.b4_cpp_guard__b4_spec_mapped_header_file %> */
|
112
|
+
<%- end -%>
|
metadata
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lrama
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yuichiro Kaneko
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-01-31 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: LALR (1) parser generator written by Ruby
|
14
|
+
email:
|
15
|
+
- spiketeika@gmail.com
|
16
|
+
executables:
|
17
|
+
- lrama
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- ".github/workflows/test.yaml"
|
22
|
+
- ".gitignore"
|
23
|
+
- ".rspec"
|
24
|
+
- Gemfile
|
25
|
+
- LEGAL.md
|
26
|
+
- MIT
|
27
|
+
- README.md
|
28
|
+
- Rakefile
|
29
|
+
- doc/TODO.md
|
30
|
+
- exe/lrama
|
31
|
+
- lib/lrama.rb
|
32
|
+
- lib/lrama/command.rb
|
33
|
+
- lib/lrama/context.rb
|
34
|
+
- lib/lrama/grammar.rb
|
35
|
+
- lib/lrama/lexer.rb
|
36
|
+
- lib/lrama/output.rb
|
37
|
+
- lib/lrama/parser.rb
|
38
|
+
- lib/lrama/report.rb
|
39
|
+
- lib/lrama/states.rb
|
40
|
+
- lib/lrama/version.rb
|
41
|
+
- lrama.gemspec
|
42
|
+
- template/bison/yacc.c
|
43
|
+
- template/bison/yacc.h
|
44
|
+
homepage: https://github.com/yui-knk/lrama
|
45
|
+
licenses:
|
46
|
+
- GNU GPLv3
|
47
|
+
metadata: {}
|
48
|
+
post_install_message:
|
49
|
+
rdoc_options: []
|
50
|
+
require_paths:
|
51
|
+
- lib
|
52
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 3.0.0
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
requirements: []
|
63
|
+
rubygems_version: 3.4.1
|
64
|
+
signing_key:
|
65
|
+
specification_version: 4
|
66
|
+
summary: LALR (1) parser generator written by Ruby
|
67
|
+
test_files: []
|