MCPcopy Create free account
hub / github.com/crosire/reshade / parse

Method parse

source/effect_parser_stmt.cpp:27–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25};
26
27bool reshadefx::parser::parse(std::string source, codegen *backend)
28{
29 _lexer = new lexer(std::move(source));
30 _codegen = backend;
31
32 consume();
33
34 bool parse_success = true;
35 bool current_success = true;
36
37 while (!peek(tokenid::end_of_file))
38 {
39 if (!parse_top(current_success))
40 {
41 parse_success = false;
42 break;
43 }
44 if (!current_success)
45 {
46 parse_success = false;
47 continue;
48 }
49 }
50
51 delete _lexer;
52
53 if (parse_success)
54 {
55 backend->optimize_bindings();
56
57 assert(_loop_break_target_stack.empty() && _loop_continue_target_stack.empty());
58 }
59
60 _loop_break_target_stack.clear();
61 _loop_continue_target_stack.clear();
62
63 return parse_success;
64}
65
66bool reshadefx::parser::parse_top(bool &parse_success)
67{

Callers 2

mainFunction · 0.45
load_effectMethod · 0.45

Calls 2

optimize_bindingsMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected