kanayago 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +12 -0
  3. data/.ruby-version +1 -0
  4. data/README.md +20 -29
  5. data/Rakefile +24 -120
  6. data/ext/kanayago/extconf.rb +14 -0
  7. data/ext/kanayago/kanayago.c +554 -235
  8. data/ext/kanayago/kanayago.h +5 -0
  9. data/ext/kanayago/literal_node.c +343 -0
  10. data/ext/kanayago/literal_node.h +30 -0
  11. data/ext/kanayago/pattern_node.c +78 -0
  12. data/ext/kanayago/pattern_node.h +13 -0
  13. data/ext/kanayago/scope_node.c +34 -0
  14. data/ext/kanayago/scope_node.h +8 -0
  15. data/ext/kanayago/statement_node.c +795 -0
  16. data/ext/kanayago/statement_node.h +66 -0
  17. data/ext/kanayago/string_node.c +192 -0
  18. data/ext/kanayago/string_node.h +19 -0
  19. data/ext/kanayago/variable_node.c +72 -0
  20. data/ext/kanayago/variable_node.h +12 -0
  21. data/lib/kanayago/literal_node.rb +87 -0
  22. data/lib/kanayago/pattern_node.rb +19 -0
  23. data/lib/kanayago/statement_node.rb +222 -0
  24. data/lib/kanayago/string_node.rb +43 -0
  25. data/lib/kanayago/variable_node.rb +23 -0
  26. data/lib/kanayago/version.rb +1 -1
  27. data/lib/kanayago.rb +22 -0
  28. data/patch/3.4/copy_target.rb +78 -0
  29. data/patch/3.4/kanayago.patch +162 -0
  30. data/patch/head/copy_target.rb +84 -0
  31. data/patch/head/kanayago.patch +162 -0
  32. data/sample/minitest_generator.rb +266 -0
  33. data/sample/test_generator.rb +272 -0
  34. data/script/setup_parser.rb +136 -0
  35. data/typeprof.conf.json +9 -0
  36. metadata +30 -64
  37. data/ext/kanayago/ccan/check_type/check_type.h +0 -63
  38. data/ext/kanayago/ccan/container_of/container_of.h +0 -142
  39. data/ext/kanayago/ccan/list/list.h +0 -791
  40. data/ext/kanayago/ccan/str/str.h +0 -17
  41. data/ext/kanayago/constant.h +0 -53
  42. data/ext/kanayago/id.h +0 -347
  43. data/ext/kanayago/id_table.h +0 -39
  44. data/ext/kanayago/internal/array.h +0 -151
  45. data/ext/kanayago/internal/basic_operators.h +0 -64
  46. data/ext/kanayago/internal/bignum.h +0 -244
  47. data/ext/kanayago/internal/bits.h +0 -568
  48. data/ext/kanayago/internal/compile.h +0 -34
  49. data/ext/kanayago/internal/compilers.h +0 -107
  50. data/ext/kanayago/internal/complex.h +0 -29
  51. data/ext/kanayago/internal/encoding.h +0 -36
  52. data/ext/kanayago/internal/error.h +0 -218
  53. data/ext/kanayago/internal/fixnum.h +0 -184
  54. data/ext/kanayago/internal/gc.h +0 -322
  55. data/ext/kanayago/internal/hash.h +0 -191
  56. data/ext/kanayago/internal/imemo.h +0 -261
  57. data/ext/kanayago/internal/io.h +0 -140
  58. data/ext/kanayago/internal/numeric.h +0 -274
  59. data/ext/kanayago/internal/parse.h +0 -117
  60. data/ext/kanayago/internal/rational.h +0 -71
  61. data/ext/kanayago/internal/re.h +0 -28
  62. data/ext/kanayago/internal/ruby_parser.h +0 -125
  63. data/ext/kanayago/internal/sanitizers.h +0 -297
  64. data/ext/kanayago/internal/serial.h +0 -23
  65. data/ext/kanayago/internal/static_assert.h +0 -16
  66. data/ext/kanayago/internal/string.h +0 -186
  67. data/ext/kanayago/internal/symbol.h +0 -45
  68. data/ext/kanayago/internal/thread.h +0 -79
  69. data/ext/kanayago/internal/variable.h +0 -72
  70. data/ext/kanayago/internal/vm.h +0 -137
  71. data/ext/kanayago/internal/warnings.h +0 -16
  72. data/ext/kanayago/internal.h +0 -108
  73. data/ext/kanayago/lex.c +0 -302
  74. data/ext/kanayago/method.h +0 -255
  75. data/ext/kanayago/node.c +0 -440
  76. data/ext/kanayago/node.h +0 -111
  77. data/ext/kanayago/node_name.inc +0 -224
  78. data/ext/kanayago/parse.c +0 -26931
  79. data/ext/kanayago/parse.h +0 -244
  80. data/ext/kanayago/parse.tmp.y +0 -16145
  81. data/ext/kanayago/parser_bits.h +0 -564
  82. data/ext/kanayago/parser_node.h +0 -32
  83. data/ext/kanayago/parser_st.c +0 -164
  84. data/ext/kanayago/parser_st.h +0 -162
  85. data/ext/kanayago/parser_value.h +0 -106
  86. data/ext/kanayago/probes.h +0 -4
  87. data/ext/kanayago/ruby_assert.h +0 -14
  88. data/ext/kanayago/ruby_atomic.h +0 -23
  89. data/ext/kanayago/ruby_parser.c +0 -1165
  90. data/ext/kanayago/rubyparser.h +0 -1391
  91. data/ext/kanayago/shape.h +0 -234
  92. data/ext/kanayago/st.c +0 -2339
  93. data/ext/kanayago/symbol.h +0 -123
  94. data/ext/kanayago/thread_pthread.h +0 -168
  95. data/ext/kanayago/universal_parser.c +0 -230
  96. data/ext/kanayago/vm_core.h +0 -2215
  97. data/ext/kanayago/vm_opts.h +0 -67
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kanayago
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - S-H-GAMELINKS
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2024-09-05 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: Trying to Make Ruby's Parser Available as a Gem
13
13
  email:
@@ -19,76 +19,41 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - ".rubocop.yml"
21
21
  - ".rubocop_todo.yml"
22
+ - ".ruby-version"
22
23
  - LICENSE.txt
23
24
  - README.md
24
25
  - Rakefile
25
- - ext/kanayago/ccan/check_type/check_type.h
26
- - ext/kanayago/ccan/container_of/container_of.h
27
- - ext/kanayago/ccan/list/list.h
28
- - ext/kanayago/ccan/str/str.h
29
- - ext/kanayago/constant.h
30
26
  - ext/kanayago/extconf.rb
31
- - ext/kanayago/id.h
32
- - ext/kanayago/id_table.h
33
- - ext/kanayago/internal.h
34
- - ext/kanayago/internal/array.h
35
- - ext/kanayago/internal/basic_operators.h
36
- - ext/kanayago/internal/bignum.h
37
- - ext/kanayago/internal/bits.h
38
- - ext/kanayago/internal/compile.h
39
- - ext/kanayago/internal/compilers.h
40
- - ext/kanayago/internal/complex.h
41
- - ext/kanayago/internal/encoding.h
42
- - ext/kanayago/internal/error.h
43
- - ext/kanayago/internal/fixnum.h
44
- - ext/kanayago/internal/gc.h
45
- - ext/kanayago/internal/hash.h
46
- - ext/kanayago/internal/imemo.h
47
- - ext/kanayago/internal/io.h
48
- - ext/kanayago/internal/numeric.h
49
- - ext/kanayago/internal/parse.h
50
- - ext/kanayago/internal/rational.h
51
- - ext/kanayago/internal/re.h
52
- - ext/kanayago/internal/ruby_parser.h
53
- - ext/kanayago/internal/sanitizers.h
54
- - ext/kanayago/internal/serial.h
55
- - ext/kanayago/internal/static_assert.h
56
- - ext/kanayago/internal/string.h
57
- - ext/kanayago/internal/symbol.h
58
- - ext/kanayago/internal/thread.h
59
- - ext/kanayago/internal/variable.h
60
- - ext/kanayago/internal/vm.h
61
- - ext/kanayago/internal/warnings.h
62
27
  - ext/kanayago/kanayago.c
63
28
  - ext/kanayago/kanayago.h
64
- - ext/kanayago/lex.c
65
- - ext/kanayago/method.h
66
- - ext/kanayago/node.c
67
- - ext/kanayago/node.h
68
- - ext/kanayago/node_name.inc
69
- - ext/kanayago/parse.c
70
- - ext/kanayago/parse.h
71
- - ext/kanayago/parse.tmp.y
72
- - ext/kanayago/parser_bits.h
73
- - ext/kanayago/parser_node.h
74
- - ext/kanayago/parser_st.c
75
- - ext/kanayago/parser_st.h
76
- - ext/kanayago/parser_value.h
77
- - ext/kanayago/probes.h
78
- - ext/kanayago/ruby_assert.h
79
- - ext/kanayago/ruby_atomic.h
80
- - ext/kanayago/ruby_parser.c
81
- - ext/kanayago/rubyparser.h
82
- - ext/kanayago/shape.h
83
- - ext/kanayago/st.c
84
- - ext/kanayago/symbol.h
85
- - ext/kanayago/thread_pthread.h
86
- - ext/kanayago/universal_parser.c
87
- - ext/kanayago/vm_core.h
88
- - ext/kanayago/vm_opts.h
29
+ - ext/kanayago/literal_node.c
30
+ - ext/kanayago/literal_node.h
31
+ - ext/kanayago/pattern_node.c
32
+ - ext/kanayago/pattern_node.h
33
+ - ext/kanayago/scope_node.c
34
+ - ext/kanayago/scope_node.h
35
+ - ext/kanayago/statement_node.c
36
+ - ext/kanayago/statement_node.h
37
+ - ext/kanayago/string_node.c
38
+ - ext/kanayago/string_node.h
39
+ - ext/kanayago/variable_node.c
40
+ - ext/kanayago/variable_node.h
89
41
  - lib/kanayago.rb
42
+ - lib/kanayago/literal_node.rb
43
+ - lib/kanayago/pattern_node.rb
44
+ - lib/kanayago/statement_node.rb
45
+ - lib/kanayago/string_node.rb
46
+ - lib/kanayago/variable_node.rb
90
47
  - lib/kanayago/version.rb
48
+ - patch/3.4/copy_target.rb
49
+ - patch/3.4/kanayago.patch
50
+ - patch/head/copy_target.rb
51
+ - patch/head/kanayago.patch
52
+ - sample/minitest_generator.rb
53
+ - sample/test_generator.rb
54
+ - script/setup_parser.rb
91
55
  - sig/kanayago.rbs
56
+ - typeprof.conf.json
92
57
  homepage: https://github.com/S-H-GAMELINKS/kanayago
93
58
  licenses:
94
59
  - MIT
@@ -96,6 +61,7 @@ metadata:
96
61
  homepage_uri: https://github.com/S-H-GAMELINKS/kanayago
97
62
  source_code_uri: https://github.com/S-H-GAMELINKS/kanayago
98
63
  changelog_uri: https://github.com/S-H-GAMELINKS/kanayago/releases
64
+ rubygems_mfa_required: 'true'
99
65
  rdoc_options: []
100
66
  require_paths:
101
67
  - lib
@@ -110,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
76
  - !ruby/object:Gem::Version
111
77
  version: '0'
112
78
  requirements: []
113
- rubygems_version: 3.6.0.dev
79
+ rubygems_version: 3.8.0.dev
114
80
  specification_version: 4
115
81
  summary: Trying to Make Ruby's Parser Available as a Gem
116
82
  test_files: []
@@ -1,63 +0,0 @@
1
- /* CC0 (Public domain) - see ccan/licenses/CC0 file for details */
2
- #ifndef CCAN_CHECK_TYPE_H
3
- #define CCAN_CHECK_TYPE_H
4
-
5
- /**
6
- * ccan_check_type - issue a warning or build failure if type is not correct.
7
- * @expr: the expression whose type we should check (not evaluated).
8
- * @type: the exact type we expect the expression to be.
9
- *
10
- * This macro is usually used within other macros to try to ensure that a macro
11
- * argument is of the expected type. No type promotion of the expression is
12
- * done: an unsigned int is not the same as an int!
13
- *
14
- * ccan_check_type() always evaluates to 0.
15
- *
16
- * If your compiler does not support typeof, then the best we can do is fail
17
- * to compile if the sizes of the types are unequal (a less complete check).
18
- *
19
- * Example:
20
- * // They should always pass a 64-bit value to _set_some_value!
21
- * #define set_some_value(expr) \
22
- * _set_some_value((ccan_check_type((expr), uint64_t), (expr)))
23
- */
24
-
25
- /**
26
- * ccan_check_types_match - issue a warning or build failure if types are not same.
27
- * @expr1: the first expression (not evaluated).
28
- * @expr2: the second expression (not evaluated).
29
- *
30
- * This macro is usually used within other macros to try to ensure that
31
- * arguments are of identical types. No type promotion of the expressions is
32
- * done: an unsigned int is not the same as an int!
33
- *
34
- * ccan_check_types_match() always evaluates to 0.
35
- *
36
- * If your compiler does not support typeof, then the best we can do is fail
37
- * to compile if the sizes of the types are unequal (a less complete check).
38
- *
39
- * Example:
40
- * // Do subtraction to get to enclosing type, but make sure that
41
- * // pointer is of correct type for that member.
42
- * #define ccan_container_of(mbr_ptr, encl_type, mbr) \
43
- * (ccan_check_types_match((mbr_ptr), &((encl_type *)0)->mbr), \
44
- * ((encl_type *) \
45
- * ((char *)(mbr_ptr) - offsetof(enclosing_type, mbr))))
46
- */
47
- #if defined(HAVE_TYPEOF) && HAVE_TYPEOF
48
- #define ccan_check_type(expr, type) \
49
- ((typeof(expr) *)0 != (type *)0)
50
-
51
- #define ccan_check_types_match(expr1, expr2) \
52
- ((typeof(expr1) *)0 != (typeof(expr2) *)0)
53
- #else
54
- #include "ccan/build_assert/build_assert.h"
55
- /* Without typeof, we can only test the sizes. */
56
- #define ccan_check_type(expr, type) \
57
- CCAN_BUILD_ASSERT_OR_ZERO(sizeof(expr) == sizeof(type))
58
-
59
- #define ccan_check_types_match(expr1, expr2) \
60
- CCAN_BUILD_ASSERT_OR_ZERO(sizeof(expr1) == sizeof(expr2))
61
- #endif /* HAVE_TYPEOF */
62
-
63
- #endif /* CCAN_CHECK_TYPE_H */
@@ -1,142 +0,0 @@
1
- /* CC0 (Public domain) - see ccan/licenses/CC0 file for details */
2
- #ifndef CCAN_CONTAINER_OF_H
3
- #define CCAN_CONTAINER_OF_H
4
- #include "ccan/check_type/check_type.h"
5
-
6
- /**
7
- * ccan_container_of - get pointer to enclosing structure
8
- * @member_ptr: pointer to the structure member
9
- * @containing_type: the type this member is within
10
- * @member: the name of this member within the structure.
11
- *
12
- * Given a pointer to a member of a structure, this macro does pointer
13
- * subtraction to return the pointer to the enclosing type.
14
- *
15
- * Example:
16
- * struct foo {
17
- * int fielda, fieldb;
18
- * // ...
19
- * };
20
- * struct info {
21
- * int some_other_field;
22
- * struct foo my_foo;
23
- * };
24
- *
25
- * static struct info *foo_to_info(struct foo *foo)
26
- * {
27
- * return ccan_container_of(foo, struct info, my_foo);
28
- * }
29
- */
30
- #define ccan_container_of(member_ptr, containing_type, member) \
31
- ((containing_type *) \
32
- ((char *)(member_ptr) \
33
- - ccan_container_off(containing_type, member)) \
34
- + ccan_check_types_match(*(member_ptr), ((containing_type *)0)->member))
35
-
36
-
37
- /**
38
- * ccan_container_of_or_null - get pointer to enclosing structure, or NULL
39
- * @member_ptr: pointer to the structure member
40
- * @containing_type: the type this member is within
41
- * @member: the name of this member within the structure.
42
- *
43
- * Given a pointer to a member of a structure, this macro does pointer
44
- * subtraction to return the pointer to the enclosing type, unless it
45
- * is given NULL, in which case it also returns NULL.
46
- *
47
- * Example:
48
- * struct foo {
49
- * int fielda, fieldb;
50
- * // ...
51
- * };
52
- * struct info {
53
- * int some_other_field;
54
- * struct foo my_foo;
55
- * };
56
- *
57
- * static struct info *foo_to_info_allowing_null(struct foo *foo)
58
- * {
59
- * return ccan_container_of_or_null(foo, struct info, my_foo);
60
- * }
61
- */
62
- static inline char *container_of_or_null_(void *member_ptr, size_t offset)
63
- {
64
- return member_ptr ? (char *)member_ptr - offset : NULL;
65
- }
66
- #define ccan_container_of_or_null(member_ptr, containing_type, member) \
67
- ((containing_type *) \
68
- ccan_container_of_or_null_(member_ptr, \
69
- ccan_container_off(containing_type, member)) \
70
- + ccan_check_types_match(*(member_ptr), ((containing_type *)0)->member))
71
-
72
- /**
73
- * ccan_container_off - get offset to enclosing structure
74
- * @containing_type: the type this member is within
75
- * @member: the name of this member within the structure.
76
- *
77
- * Given a pointer to a member of a structure, this macro does
78
- * typechecking and figures out the offset to the enclosing type.
79
- *
80
- * Example:
81
- * struct foo {
82
- * int fielda, fieldb;
83
- * // ...
84
- * };
85
- * struct info {
86
- * int some_other_field;
87
- * struct foo my_foo;
88
- * };
89
- *
90
- * static struct info *foo_to_info(struct foo *foo)
91
- * {
92
- * size_t off = ccan_container_off(struct info, my_foo);
93
- * return (void *)((char *)foo - off);
94
- * }
95
- */
96
- #define ccan_container_off(containing_type, member) \
97
- offsetof(containing_type, member)
98
-
99
- /**
100
- * ccan_container_of_var - get pointer to enclosing structure using a variable
101
- * @member_ptr: pointer to the structure member
102
- * @container_var: a pointer of same type as this member's container
103
- * @member: the name of this member within the structure.
104
- *
105
- * Given a pointer to a member of a structure, this macro does pointer
106
- * subtraction to return the pointer to the enclosing type.
107
- *
108
- * Example:
109
- * static struct info *foo_to_i(struct foo *foo)
110
- * {
111
- * struct info *i = ccan_container_of_var(foo, i, my_foo);
112
- * return i;
113
- * }
114
- */
115
- #if defined(HAVE_TYPEOF) && HAVE_TYPEOF
116
- #define ccan_container_of_var(member_ptr, container_var, member) \
117
- ccan_container_of(member_ptr, typeof(*container_var), member)
118
- #else
119
- #define ccan_container_of_var(member_ptr, container_var, member) \
120
- ((void *)((char *)(member_ptr) - \
121
- ccan_container_off_var(container_var, member)))
122
- #endif
123
-
124
- /**
125
- * ccan_container_off_var - get offset of a field in enclosing structure
126
- * @container_var: a pointer to a container structure
127
- * @member: the name of a member within the structure.
128
- *
129
- * Given (any) pointer to a structure and a its member name, this
130
- * macro does pointer subtraction to return offset of member in a
131
- * structure memory layout.
132
- *
133
- */
134
- #if defined(HAVE_TYPEOF) && HAVE_TYPEOF
135
- #define ccan_container_off_var(var, member) \
136
- ccan_container_off(typeof(*var), member)
137
- #else
138
- #define ccan_container_off_var(var, member) \
139
- ((const char *)&(var)->member - (const char *)(var))
140
- #endif
141
-
142
- #endif /* CCAN_CONTAINER_OF_H */