Skip to content

Commit b6323d1

Browse files
committed
Add parser.rbs
1 parent 37a09c0 commit b6323d1

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed

sig/ruby_header_parser/parser.rbs

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
module RubyHeaderParser
2+
class Parser
3+
attr_reader header_file: String
4+
attr_reader include_paths: Array[String]
5+
attr_reader dist_preprocessed_header_file: String
6+
attr_reader data: Data
7+
8+
def initialize: (
9+
dist_preprocessed_header_file: String,
10+
?header_file: String,
11+
?include_paths: Array[String]
12+
) -> void
13+
14+
def extract_function_definitions: () -> Array[FunctionDefinition]
15+
16+
def extract_static_inline_function_definitions: () -> Array[FunctionDefinition]
17+
18+
def extract_struct_definitions: () -> Array[StructDefinition]
19+
20+
def extract_type_definitions: () -> Array[TyperefDefinition]
21+
22+
def extract_enum_definitions: () -> Array[EnumDefinition]
23+
24+
private
25+
26+
def __extract_function_definitions: (c_kinds: String, kind: String, is_parse_multiline_definition: bool) -> Array[FunctionDefinition]
27+
28+
def generate_function_definition_from_line: (line: String, kind: String, is_parse_multiline_definition: bool) -> FunctionDefinition?
29+
30+
def execute_ctags: (?String args) -> String
31+
32+
def read_definition_from_header_file: (String file, Integer line_num) -> String
33+
34+
def parse_function_definition: (
35+
filepath: String,
36+
pattern: String,
37+
line_num: Integer,
38+
is_parse_multiline_definition: bool
39+
) -> String
40+
41+
def parse_definition_args: (String function_name, String? signature) -> Array[ArgumentDefinition]
42+
43+
def create_typeref: (
44+
definition: String,
45+
function_name: String,
46+
typeref_field: String?,
47+
filepath: String,
48+
line_num: Integer
49+
) -> TyperefDefinition
50+
51+
def parse_typeref_type: (
52+
definition: String,
53+
function_name: String,
54+
typeref_field: String?,
55+
filepath: String,
56+
line_num: Integer
57+
) -> String
58+
59+
def read_file_line: (filepath: String, line_num: Integer) -> String?
60+
61+
def generate_argument_definition: (
62+
function_name: String,
63+
arg: String,
64+
arg_pos: Integer
65+
) -> ArgumentDefinition
66+
67+
def analyze_argument_type: (
68+
function_name: String,
69+
arg_pos: Integer,
70+
parts: Array[String]
71+
) -> [String, Symbol?, Integer]
72+
73+
def prepare_argument_parts: (
74+
parts: Array[String],
75+
arg_pos: Integer
76+
) -> [Symbol?, Integer]
77+
78+
def pointer_length: (String) -> Integer
79+
end
80+
end

0 commit comments

Comments
 (0)