herb 0.9.2-arm-linux-gnu → 0.9.4-arm-linux-gnu
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.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/config.yml +125 -0
- data/ext/herb/error_helpers.c +172 -2
- data/ext/herb/extconf.rb +6 -0
- data/ext/herb/extension.c +16 -2
- data/ext/herb/extension_helpers.c +6 -5
- data/ext/herb/extension_helpers.h +4 -4
- data/ext/herb/nodes.c +89 -3
- data/lib/herb/3.0/herb.so +0 -0
- data/lib/herb/3.1/herb.so +0 -0
- data/lib/herb/3.2/herb.so +0 -0
- data/lib/herb/3.3/herb.so +0 -0
- data/lib/herb/3.4/herb.so +0 -0
- data/lib/herb/4.0/herb.so +0 -0
- data/lib/herb/ast/erb_content_node.rb +32 -0
- data/lib/herb/ast/nodes.rb +244 -3
- data/lib/herb/cli.rb +12 -2
- data/lib/herb/engine/compiler.rb +166 -75
- data/lib/herb/engine/validators/security_validator.rb +40 -0
- data/lib/herb/engine.rb +3 -0
- data/lib/herb/errors.rb +268 -0
- data/lib/herb/parser_options.rb +7 -2
- data/lib/herb/project.rb +58 -17
- data/lib/herb/version.rb +1 -1
- data/lib/herb/visitor.rb +82 -0
- data/lib/herb.rb +1 -0
- data/sig/herb/ast/erb_content_node.rbs +13 -0
- data/sig/herb/ast/nodes.rbs +98 -2
- data/sig/herb/engine/compiler.rbs +31 -2
- data/sig/herb/engine/validators/security_validator.rbs +4 -0
- data/sig/herb/engine.rbs +3 -0
- data/sig/herb/errors.rbs +122 -0
- data/sig/herb/parser_options.rbs +6 -2
- data/sig/herb/visitor.rbs +12 -0
- data/sig/serialized_ast_errors.rbs +29 -0
- data/sig/serialized_ast_nodes.rbs +19 -0
- data/src/analyze/action_view/attribute_extraction_helpers.c +420 -91
- data/src/analyze/action_view/image_tag.c +87 -0
- data/src/analyze/action_view/javascript_include_tag.c +22 -12
- data/src/analyze/action_view/registry.c +6 -3
- data/src/analyze/action_view/tag.c +19 -2
- data/src/analyze/action_view/tag_helper_node_builders.c +105 -36
- data/src/analyze/action_view/tag_helpers.c +792 -44
- data/src/analyze/analyze.c +167 -13
- data/src/analyze/{helpers.c → analyze_helpers.c} +1 -1
- data/src/analyze/analyzed_ruby.c +1 -1
- data/src/analyze/builders.c +11 -8
- data/src/analyze/conditional_elements.c +6 -7
- data/src/analyze/conditional_open_tags.c +6 -7
- data/src/analyze/control_type.c +4 -2
- data/src/analyze/invalid_structures.c +5 -5
- data/src/analyze/missing_end.c +2 -2
- data/src/analyze/parse_errors.c +47 -6
- data/src/analyze/prism_annotate.c +7 -7
- data/src/analyze/render_nodes.c +6 -26
- data/src/analyze/strict_locals.c +651 -0
- data/src/analyze/transform.c +7 -0
- data/src/{ast_node.c → ast/ast_node.c} +8 -8
- data/src/{ast_nodes.c → ast/ast_nodes.c} +82 -11
- data/src/{ast_pretty_print.c → ast/ast_pretty_print.c} +113 -9
- data/src/{pretty_print.c → ast/pretty_print.c} +9 -9
- data/src/errors.c +398 -8
- data/src/extract.c +5 -5
- data/src/herb.c +15 -5
- data/src/include/analyze/action_view/attribute_extraction_helpers.h +3 -1
- data/src/include/analyze/action_view/tag_helper_handler.h +3 -3
- data/src/include/analyze/action_view/tag_helper_node_builders.h +34 -5
- data/src/include/analyze/action_view/tag_helpers.h +4 -3
- data/src/include/analyze/analyze.h +12 -5
- data/src/include/analyze/analyzed_ruby.h +2 -2
- data/src/include/analyze/builders.h +4 -4
- data/src/include/analyze/conditional_elements.h +2 -2
- data/src/include/analyze/conditional_open_tags.h +2 -2
- data/src/include/analyze/control_type.h +1 -1
- data/src/include/analyze/helpers.h +2 -2
- data/src/include/analyze/invalid_structures.h +1 -1
- data/src/include/analyze/prism_annotate.h +2 -2
- data/src/include/analyze/render_nodes.h +1 -1
- data/src/include/analyze/strict_locals.h +11 -0
- data/src/include/{ast_node.h → ast/ast_node.h} +4 -4
- data/src/include/{ast_nodes.h → ast/ast_nodes.h} +38 -14
- data/src/include/{ast_pretty_print.h → ast/ast_pretty_print.h} +3 -3
- data/src/include/{pretty_print.h → ast/pretty_print.h} +4 -4
- data/src/include/errors.h +65 -7
- data/src/include/extract.h +2 -2
- data/src/include/herb.h +5 -5
- data/src/include/{lex_helpers.h → lexer/lex_helpers.h} +5 -5
- data/src/include/{lexer.h → lexer/lexer.h} +1 -1
- data/src/include/{lexer_peek_helpers.h → lexer/lexer_peek_helpers.h} +2 -2
- data/src/include/{lexer_struct.h → lexer/lexer_struct.h} +2 -2
- data/src/include/{token.h → lexer/token.h} +3 -3
- data/src/include/{token_matchers.h → lexer/token_matchers.h} +1 -1
- data/src/include/{token_struct.h → lexer/token_struct.h} +3 -3
- data/src/include/{util → lib}/hb_foreach.h +1 -1
- data/src/include/{util → lib}/hb_string.h +5 -1
- data/src/include/{location.h → location/location.h} +1 -1
- data/src/include/parser/dot_notation.h +12 -0
- data/src/include/{parser.h → parser/parser.h} +11 -4
- data/src/include/{parser_helpers.h → parser/parser_helpers.h} +6 -6
- data/src/include/{prism_context.h → prism/prism_context.h} +2 -2
- data/src/include/{prism_helpers.h → prism/prism_helpers.h} +6 -6
- data/src/include/{html_util.h → util/html_util.h} +1 -1
- data/src/include/util/ruby_util.h +9 -0
- data/src/include/{utf8.h → util/utf8.h} +1 -1
- data/src/include/{util.h → util/util.h} +1 -1
- data/src/include/version.h +1 -1
- data/src/include/visitor.h +3 -3
- data/src/{lexer_peek_helpers.c → lexer/lexer_peek_helpers.c} +3 -3
- data/src/{token.c → lexer/token.c} +8 -8
- data/src/{token_matchers.c → lexer/token_matchers.c} +2 -2
- data/src/lexer.c +6 -6
- data/src/{util → lib}/hb_allocator.c +2 -2
- data/src/{util → lib}/hb_arena.c +1 -1
- data/src/{util → lib}/hb_arena_debug.c +2 -2
- data/src/{util → lib}/hb_array.c +2 -2
- data/src/{util → lib}/hb_buffer.c +2 -2
- data/src/{util → lib}/hb_narray.c +1 -1
- data/src/{util → lib}/hb_string.c +2 -2
- data/src/{location.c → location/location.c} +2 -2
- data/src/{position.c → location/position.c} +2 -2
- data/src/{range.c → location/range.c} +1 -1
- data/src/main.c +11 -11
- data/src/parser/dot_notation.c +100 -0
- data/src/{parser_match_tags.c → parser/match_tags.c} +34 -5
- data/src/{parser_helpers.c → parser/parser_helpers.c} +10 -10
- data/src/parser.c +68 -32
- data/src/{prism_helpers.c → prism/prism_helpers.c} +7 -7
- data/src/{ruby_parser.c → prism/ruby_parser.c} +1 -1
- data/src/{html_util.c → util/html_util.c} +4 -4
- data/src/{io.c → util/io.c} +3 -3
- data/src/util/ruby_util.c +42 -0
- data/src/{utf8.c → util/utf8.c} +2 -2
- data/src/{util.c → util/util.c} +4 -4
- data/src/visitor.c +35 -3
- data/templates/ext/herb/error_helpers.c.erb +2 -2
- data/templates/ext/herb/nodes.c.erb +1 -1
- data/templates/java/error_helpers.c.erb +1 -1
- data/templates/java/error_helpers.h.erb +2 -2
- data/templates/java/nodes.c.erb +4 -4
- data/templates/java/nodes.h.erb +1 -1
- data/templates/javascript/packages/node/extension/error_helpers.cpp.erb +4 -4
- data/templates/javascript/packages/node/extension/nodes.cpp.erb +4 -4
- data/templates/lib/herb/visitor.rb.erb +14 -0
- data/templates/src/analyze/missing_end.c.erb +2 -2
- data/templates/src/{ast_nodes.c.erb → ast/ast_nodes.c.erb} +9 -9
- data/templates/src/{ast_pretty_print.c.erb → ast/ast_pretty_print.c.erb} +8 -8
- data/templates/src/errors.c.erb +8 -8
- data/templates/src/include/{ast_nodes.h.erb → ast/ast_nodes.h.erb} +11 -12
- data/templates/src/include/{ast_pretty_print.h.erb → ast/ast_pretty_print.h.erb} +2 -2
- data/templates/src/include/errors.h.erb +7 -7
- data/templates/src/{parser_match_tags.c.erb → parser/match_tags.c.erb} +4 -4
- data/templates/src/visitor.c.erb +3 -3
- data/templates/wasm/error_helpers.cpp.erb +4 -4
- data/templates/wasm/nodes.cpp.erb +5 -5
- metadata +76 -68
- data/src/include/element_source.h +0 -10
- /data/src/include/{util → lib}/hb_allocator.h +0 -0
- /data/src/include/{util → lib}/hb_arena.h +0 -0
- /data/src/include/{util → lib}/hb_arena_debug.h +0 -0
- /data/src/include/{util → lib}/hb_array.h +0 -0
- /data/src/include/{util → lib}/hb_buffer.h +0 -0
- /data/src/include/{util → lib}/hb_narray.h +0 -0
- /data/src/include/{util → lib}/string.h +0 -0
- /data/src/include/{position.h → location/position.h} +0 -0
- /data/src/include/{range.h → location/range.h} +0 -0
- /data/src/include/{herb_prism_node.h → prism/herb_prism_node.h} +0 -0
- /data/src/include/{prism_serialized.h → prism/prism_serialized.h} +0 -0
- /data/src/include/{ruby_parser.h → prism/ruby_parser.h} +0 -0
- /data/src/include/{io.h → util/io.h} +0 -0
- /data/templates/src/include/{util → lib}/hb_foreach.h.erb +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
#include "include/prism_helpers.h"
|
|
2
|
-
#include "include/ast_nodes.h"
|
|
3
|
-
#include "include/errors.h"
|
|
4
|
-
#include "include/
|
|
5
|
-
#include "include/
|
|
6
|
-
#include "include/
|
|
7
|
-
#include "include/
|
|
1
|
+
#include "../include/prism/prism_helpers.h"
|
|
2
|
+
#include "../include/ast/ast_nodes.h"
|
|
3
|
+
#include "../include/errors.h"
|
|
4
|
+
#include "../include/lib/hb_buffer.h"
|
|
5
|
+
#include "../include/lib/hb_string.h"
|
|
6
|
+
#include "../include/location/location.h"
|
|
7
|
+
#include "../include/location/position.h"
|
|
8
8
|
|
|
9
9
|
#include <prism.h>
|
|
10
10
|
#include <stdlib.h>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#include "include/html_util.h"
|
|
2
|
-
#include "include/
|
|
3
|
-
#include "include/
|
|
4
|
-
#include "include/
|
|
1
|
+
#include "../include/util/html_util.h"
|
|
2
|
+
#include "../include/lib/hb_allocator.h"
|
|
3
|
+
#include "../include/lib/hb_buffer.h"
|
|
4
|
+
#include "../include/lib/hb_string.h"
|
|
5
5
|
|
|
6
6
|
#include <ctype.h>
|
|
7
7
|
#include <stdbool.h>
|
data/src/{io.c → util/io.c}
RENAMED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#include "../include/util/ruby_util.h"
|
|
2
|
+
#include "../include/lib/hb_string.h"
|
|
3
|
+
|
|
4
|
+
#include <stdbool.h>
|
|
5
|
+
#include <stddef.h>
|
|
6
|
+
|
|
7
|
+
static hb_string_T ruby_introspection_methods[] = HB_STRING_LIST(
|
|
8
|
+
"send",
|
|
9
|
+
"public_send",
|
|
10
|
+
"__send__",
|
|
11
|
+
"try",
|
|
12
|
+
"try!",
|
|
13
|
+
"method",
|
|
14
|
+
"class",
|
|
15
|
+
"inspect",
|
|
16
|
+
"to_s",
|
|
17
|
+
"object_id",
|
|
18
|
+
"__id__",
|
|
19
|
+
"dup",
|
|
20
|
+
"clone",
|
|
21
|
+
"freeze",
|
|
22
|
+
"frozen",
|
|
23
|
+
"tap",
|
|
24
|
+
"then",
|
|
25
|
+
"yield_self"
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
bool is_ruby_introspection_method(hb_string_T method_name) {
|
|
29
|
+
size_t count = sizeof(ruby_introspection_methods) / sizeof(ruby_introspection_methods[0]);
|
|
30
|
+
|
|
31
|
+
for (size_t index = 0; index < count; index++) {
|
|
32
|
+
if (hb_string_equals(method_name, ruby_introspection_methods[index])) { return true; }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (method_name.length > 0) {
|
|
36
|
+
char last_char = method_name.data[method_name.length - 1];
|
|
37
|
+
|
|
38
|
+
if (last_char == '?' || last_char == '!') { return true; }
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return false;
|
|
42
|
+
}
|
data/src/{utf8.c → util/utf8.c}
RENAMED
data/src/{util.c → util/util.c}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#include "include/util.h"
|
|
2
|
-
#include "include/
|
|
3
|
-
#include "include/
|
|
4
|
-
#include "include/
|
|
1
|
+
#include "../include/util/util.h"
|
|
2
|
+
#include "../include/lib/hb_allocator.h"
|
|
3
|
+
#include "../include/lib/hb_buffer.h"
|
|
4
|
+
#include "../include/lib/hb_string.h"
|
|
5
5
|
|
|
6
6
|
#include <stdio.h>
|
|
7
7
|
#include <stdlib.h>
|
data/src/visitor.c
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
#include <stdio.h>
|
|
5
5
|
|
|
6
|
-
#include "include/ast_node.h"
|
|
7
|
-
#include "include/ast_nodes.h"
|
|
8
|
-
#include "include/
|
|
6
|
+
#include "include/ast/ast_node.h"
|
|
7
|
+
#include "include/ast/ast_nodes.h"
|
|
8
|
+
#include "include/lib/hb_array.h"
|
|
9
9
|
#include "include/visitor.h"
|
|
10
10
|
|
|
11
11
|
void herb_visit_node(const AST_NODE_T* node, bool (*visitor)(const AST_NODE_T*, void*), void* data) {
|
|
@@ -237,6 +237,18 @@ void herb_visit_child_nodes(const AST_NODE_T *node, bool (*visitor)(const AST_NO
|
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
+
if (erb_block_node->rescue_clause != NULL) {
|
|
241
|
+
herb_visit_node((AST_NODE_T *) erb_block_node->rescue_clause, visitor, data);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
if (erb_block_node->else_clause != NULL) {
|
|
245
|
+
herb_visit_node((AST_NODE_T *) erb_block_node->else_clause, visitor, data);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
if (erb_block_node->ensure_clause != NULL) {
|
|
249
|
+
herb_visit_node((AST_NODE_T *) erb_block_node->ensure_clause, visitor, data);
|
|
250
|
+
}
|
|
251
|
+
|
|
240
252
|
if (erb_block_node->end_node != NULL) {
|
|
241
253
|
herb_visit_node((AST_NODE_T *) erb_block_node->end_node, visitor, data);
|
|
242
254
|
}
|
|
@@ -441,6 +453,26 @@ void herb_visit_child_nodes(const AST_NODE_T *node, bool (*visitor)(const AST_NO
|
|
|
441
453
|
|
|
442
454
|
} break;
|
|
443
455
|
|
|
456
|
+
case AST_RUBY_STRICT_LOCAL_NODE: {
|
|
457
|
+
const AST_RUBY_STRICT_LOCAL_NODE_T* ruby_strict_local_node = ((const AST_RUBY_STRICT_LOCAL_NODE_T *) node);
|
|
458
|
+
|
|
459
|
+
if (ruby_strict_local_node->default_value != NULL) {
|
|
460
|
+
herb_visit_node((AST_NODE_T *) ruby_strict_local_node->default_value, visitor, data);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
} break;
|
|
464
|
+
|
|
465
|
+
case AST_ERB_STRICT_LOCALS_NODE: {
|
|
466
|
+
const AST_ERB_STRICT_LOCALS_NODE_T* erb_strict_locals_node = ((const AST_ERB_STRICT_LOCALS_NODE_T *) node);
|
|
467
|
+
|
|
468
|
+
if (erb_strict_locals_node->locals != NULL) {
|
|
469
|
+
for (size_t index = 0; index < hb_array_size(erb_strict_locals_node->locals); index++) {
|
|
470
|
+
herb_visit_node(hb_array_get(erb_strict_locals_node->locals, index), visitor, data);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
} break;
|
|
475
|
+
|
|
444
476
|
case AST_ERB_IN_NODE: {
|
|
445
477
|
const AST_ERB_IN_NODE_T* erb_in_node = ((const AST_ERB_IN_NODE_T *) node);
|
|
446
478
|
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
#include "../../src/include/errors.h"
|
|
8
8
|
#include "../../src/include/herb.h"
|
|
9
|
-
#include "../../src/include/token.h"
|
|
10
|
-
#include "../../src/include/
|
|
9
|
+
#include "../../src/include/lexer/token.h"
|
|
10
|
+
#include "../../src/include/lib/hb_string.h"
|
|
11
11
|
|
|
12
12
|
VALUE rb_error_from_c_struct(ERROR_T* error);
|
|
13
13
|
|
data/templates/java/nodes.c.erb
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
#include "extension_helpers.h"
|
|
3
3
|
#include "error_helpers.h"
|
|
4
4
|
|
|
5
|
-
#include "../../src/include/ast_node.h"
|
|
6
|
-
#include "../../src/include/ast_nodes.h"
|
|
7
|
-
#include "../../src/include/location.h"
|
|
8
|
-
#include "../../src/include/
|
|
5
|
+
#include "../../src/include/ast/ast_node.h"
|
|
6
|
+
#include "../../src/include/ast/ast_nodes.h"
|
|
7
|
+
#include "../../src/include/location/location.h"
|
|
8
|
+
#include "../../src/include/lib/hb_array.h"
|
|
9
9
|
|
|
10
10
|
#include <stdlib.h>
|
|
11
11
|
|
data/templates/java/nodes.h.erb
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
#include "nodes.h"
|
|
5
5
|
|
|
6
6
|
extern "C" {
|
|
7
|
-
#include "../extension/libherb/include/ast_node.h"
|
|
8
|
-
#include "../extension/libherb/include/ast_nodes.h"
|
|
7
|
+
#include "../extension/libherb/include/ast/ast_node.h"
|
|
8
|
+
#include "../extension/libherb/include/ast/ast_nodes.h"
|
|
9
9
|
#include "../extension/libherb/include/errors.h"
|
|
10
10
|
#include "../extension/libherb/include/herb.h"
|
|
11
|
-
#include "../extension/libherb/include/token.h"
|
|
12
|
-
#include "../extension/libherb/include/
|
|
11
|
+
#include "../extension/libherb/include/lexer/token.h"
|
|
12
|
+
#include "../extension/libherb/include/lib/hb_array.h"
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
napi_value ErrorFromCStruct(napi_env env, ERROR_T* error);
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
#include "nodes.h"
|
|
5
5
|
|
|
6
6
|
extern "C" {
|
|
7
|
-
#include "../extension/libherb/include/ast_node.h"
|
|
8
|
-
#include "../extension/libherb/include/ast_nodes.h"
|
|
7
|
+
#include "../extension/libherb/include/ast/ast_node.h"
|
|
8
|
+
#include "../extension/libherb/include/ast/ast_nodes.h"
|
|
9
9
|
#include "../extension/libherb/include/herb.h"
|
|
10
|
-
#include "../extension/libherb/include/token.h"
|
|
11
|
-
#include "../extension/libherb/include/
|
|
10
|
+
#include "../extension/libherb/include/lexer/token.h"
|
|
11
|
+
#include "../extension/libherb/include/lib/hb_array.h"
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
napi_value NodeFromCStruct(napi_env env, AST_NODE_T* node);
|
|
@@ -17,9 +17,23 @@ module Herb
|
|
|
17
17
|
node.compact_child_nodes.each { |node| node.accept(self) }
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
+
#: (Herb::AST::Node) -> void
|
|
21
|
+
def visit_node(node)
|
|
22
|
+
# Default implementation does nothing
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
#: (Herb::AST::Node) -> void
|
|
26
|
+
def visit_erb_node(node)
|
|
27
|
+
# Default implementation does nothing
|
|
28
|
+
end
|
|
29
|
+
|
|
20
30
|
<%- nodes.each do |node| -%>
|
|
21
31
|
#: (Herb::AST::<%= node.name %>) -> void
|
|
22
32
|
def visit_<%= node.human %>(node)
|
|
33
|
+
visit_node(node)
|
|
34
|
+
<%- if node.name.start_with?("ERB") -%>
|
|
35
|
+
visit_erb_node(node)
|
|
36
|
+
<%- end -%>
|
|
23
37
|
visit_child_nodes(node)
|
|
24
38
|
end
|
|
25
39
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#include "../include/analyze/helpers.h"
|
|
2
2
|
#include "../include/errors.h"
|
|
3
|
-
#include "../include/
|
|
4
|
-
#include "../include/
|
|
3
|
+
#include "../include/lib/hb_allocator.h"
|
|
4
|
+
#include "../include/lib/hb_string.h"
|
|
5
5
|
|
|
6
6
|
<%-
|
|
7
7
|
nodes_with_end_node = nodes.select do |node|
|
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
|
|
4
4
|
#include <prism.h>
|
|
5
5
|
|
|
6
|
-
#include "include/analyze/analyzed_ruby.h"
|
|
7
|
-
#include "include/ast_node.h"
|
|
8
|
-
#include "include/ast_nodes.h"
|
|
9
|
-
#include "include/errors.h"
|
|
10
|
-
#include "include/token.h"
|
|
11
|
-
#include "include/util.h"
|
|
12
|
-
#include "include/
|
|
13
|
-
#include "include/
|
|
14
|
-
#include "include/
|
|
6
|
+
#include "../include/analyze/analyzed_ruby.h"
|
|
7
|
+
#include "../include/ast/ast_node.h"
|
|
8
|
+
#include "../include/ast/ast_nodes.h"
|
|
9
|
+
#include "../include/errors.h"
|
|
10
|
+
#include "../include/lexer/token.h"
|
|
11
|
+
#include "../include/util/util.h"
|
|
12
|
+
#include "../include/lib/hb_allocator.h"
|
|
13
|
+
#include "../include/lib/hb_array.h"
|
|
14
|
+
#include "../include/lib/hb_string.h"
|
|
15
15
|
|
|
16
16
|
<%- nodes.each do |node| -%>
|
|
17
17
|
<%- node_arguments = node.fields.any? ? node.fields.map { |field| [field.c_type, " ", field.name].join } : [] -%>
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
// Pretty print support excluded
|
|
3
3
|
#else
|
|
4
4
|
|
|
5
|
-
#include "include/analyze/helpers.h"
|
|
6
|
-
#include "include/ast_node.h"
|
|
7
|
-
#include "include/ast_nodes.h"
|
|
8
|
-
#include "include/errors.h"
|
|
9
|
-
#include "include/pretty_print.h"
|
|
10
|
-
#include "include/token_struct.h"
|
|
11
|
-
#include "include/util.h"
|
|
12
|
-
#include "include/
|
|
5
|
+
#include "../include/analyze/helpers.h"
|
|
6
|
+
#include "../include/ast/ast_node.h"
|
|
7
|
+
#include "../include/ast/ast_nodes.h"
|
|
8
|
+
#include "../include/errors.h"
|
|
9
|
+
#include "../include/ast/pretty_print.h"
|
|
10
|
+
#include "../include/lexer/token_struct.h"
|
|
11
|
+
#include "../include/util/util.h"
|
|
12
|
+
#include "../include/lib/hb_buffer.h"
|
|
13
13
|
|
|
14
14
|
#include <stdio.h>
|
|
15
15
|
#include <stdlib.h>
|
data/templates/src/errors.c.erb
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#include "include/errors.h"
|
|
2
|
-
#include "include/location.h"
|
|
3
|
-
#include "include/position.h"
|
|
4
|
-
#include "include/pretty_print.h"
|
|
5
|
-
#include "include/token.h"
|
|
6
|
-
#include "include/util.h"
|
|
7
|
-
#include "include/
|
|
8
|
-
#include "include/
|
|
9
|
-
#include "include/
|
|
2
|
+
#include "include/location/location.h"
|
|
3
|
+
#include "include/location/position.h"
|
|
4
|
+
#include "include/ast/pretty_print.h"
|
|
5
|
+
#include "include/lexer/token.h"
|
|
6
|
+
#include "include/util/util.h"
|
|
7
|
+
#include "include/lib/hb_allocator.h"
|
|
8
|
+
#include "include/lib/hb_array.h"
|
|
9
|
+
#include "include/lib/hb_string.h"
|
|
10
10
|
|
|
11
11
|
#include <stdio.h>
|
|
12
12
|
#include <stdbool.h>
|
|
@@ -4,18 +4,17 @@
|
|
|
4
4
|
#include <stdbool.h>
|
|
5
5
|
#include <prism.h>
|
|
6
6
|
|
|
7
|
-
#include "analyze/analyzed_ruby.h"
|
|
8
|
-
#include "
|
|
9
|
-
#include "
|
|
10
|
-
#include "
|
|
11
|
-
#include "
|
|
12
|
-
#include "location.h"
|
|
13
|
-
#include "
|
|
14
|
-
#include "
|
|
15
|
-
#include "
|
|
16
|
-
#include "
|
|
17
|
-
#include "
|
|
18
|
-
#include "util/hb_string.h"
|
|
7
|
+
#include "../analyze/analyzed_ruby.h"
|
|
8
|
+
#include "../prism/herb_prism_node.h"
|
|
9
|
+
#include "../prism/prism_context.h"
|
|
10
|
+
#include "../prism/prism_serialized.h"
|
|
11
|
+
#include "../location/location.h"
|
|
12
|
+
#include "../location/position.h"
|
|
13
|
+
#include "../lexer/token_struct.h"
|
|
14
|
+
#include "../lib/hb_allocator.h"
|
|
15
|
+
#include "../lib/hb_array.h"
|
|
16
|
+
#include "../lib/hb_buffer.h"
|
|
17
|
+
#include "../lib/hb_string.h"
|
|
19
18
|
|
|
20
19
|
typedef enum {
|
|
21
20
|
<%- nodes.each do |node| -%>
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
#define HERB_ERRORS_H
|
|
3
3
|
|
|
4
4
|
#include "errors.h"
|
|
5
|
-
#include "location.h"
|
|
6
|
-
#include "position.h"
|
|
7
|
-
#include "token.h"
|
|
8
|
-
#include "
|
|
9
|
-
#include "
|
|
10
|
-
#include "
|
|
11
|
-
#include "
|
|
5
|
+
#include "location/location.h"
|
|
6
|
+
#include "location/position.h"
|
|
7
|
+
#include "lexer/token.h"
|
|
8
|
+
#include "lib/hb_allocator.h"
|
|
9
|
+
#include "lib/hb_array.h"
|
|
10
|
+
#include "lib/hb_buffer.h"
|
|
11
|
+
#include "lib/hb_string.h"
|
|
12
12
|
|
|
13
13
|
typedef enum {
|
|
14
14
|
<%- errors.each do |error| -%>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#include "include/parser.h"
|
|
2
|
-
#include "include/ast_nodes.h"
|
|
3
|
-
#include "include/
|
|
4
|
-
#include "include/visitor.h"
|
|
1
|
+
#include "../include/parser/parser.h"
|
|
2
|
+
#include "../include/ast/ast_nodes.h"
|
|
3
|
+
#include "../include/lib/hb_array.h"
|
|
4
|
+
#include "../include/visitor.h"
|
|
5
5
|
|
|
6
6
|
bool match_tags_visitor(const AST_NODE_T* node, void* data) {
|
|
7
7
|
match_tags_context_T* context = (match_tags_context_T*) data;
|
data/templates/src/visitor.c.erb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#include <stdio.h>
|
|
2
2
|
|
|
3
|
-
#include "include/ast_node.h"
|
|
4
|
-
#include "include/ast_nodes.h"
|
|
5
|
-
#include "include/
|
|
3
|
+
#include "include/ast/ast_node.h"
|
|
4
|
+
#include "include/ast/ast_nodes.h"
|
|
5
|
+
#include "include/lib/hb_array.h"
|
|
6
6
|
#include "include/visitor.h"
|
|
7
7
|
|
|
8
8
|
void herb_visit_node(const AST_NODE_T* node, bool (*visitor)(const AST_NODE_T*, void*), void* data) {
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
#include "extension_helpers.h"
|
|
9
9
|
|
|
10
10
|
extern "C" {
|
|
11
|
-
#include "../src/include/ast_node.h"
|
|
12
|
-
#include "../src/include/ast_nodes.h"
|
|
11
|
+
#include "../src/include/ast/ast_node.h"
|
|
12
|
+
#include "../src/include/ast/ast_nodes.h"
|
|
13
13
|
#include "../src/include/errors.h"
|
|
14
14
|
#include "../src/include/herb.h"
|
|
15
|
-
#include "../src/include/token.h"
|
|
16
|
-
#include "../src/include/
|
|
15
|
+
#include "../src/include/lexer/token.h"
|
|
16
|
+
#include "../src/include/lib/hb_array.h"
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
using namespace emscripten;
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
#include "error_helpers.h"
|
|
5
5
|
#include "extension_helpers.h"
|
|
6
6
|
|
|
7
|
-
#include "../src/include/ast_node.h"
|
|
8
|
-
#include "../src/include/ast_nodes.h"
|
|
7
|
+
#include "../src/include/ast/ast_node.h"
|
|
8
|
+
#include "../src/include/ast/ast_nodes.h"
|
|
9
9
|
#include "../src/include/herb.h"
|
|
10
|
-
#include "../src/include/location.h"
|
|
11
|
-
#include "../src/include/token.h"
|
|
12
|
-
#include "../src/include/
|
|
10
|
+
#include "../src/include/location/location.h"
|
|
11
|
+
#include "../src/include/lexer/token.h"
|
|
12
|
+
#include "../src/include/lib/hb_array.h"
|
|
13
13
|
|
|
14
14
|
using namespace emscripten;
|
|
15
15
|
|