1
2
3
4
5
6 #include <sngcpp/parser/ParsingContext.hpp>
7
8 namespace sngcpp { namespace cppparser {
9
10 ParsingContext::ParsingContext() : parsingTemplateId(false), inFunctionBody(false), sourceFileNode(nullptr), parsingLvalue(false), parsingArguments(false)
11 {
12 }
13
14 void ParsingContext::BeginParsingTemplateId()
15 {
16 parsingTemplateIdStack.push(parsingTemplateId);
17 parsingTemplateId = true;
18 }
19
20 void ParsingContext::EndParsingTemplateId()
21 {
22 parsingTemplateId = parsingTemplateIdStack.top();
23 parsingTemplateIdStack.pop();
24 }
25
26 void ParsingContext::BeginFunctionBody()
27 {
28 inFunctionBodyStack.push(inFunctionBody);
29 inFunctionBody = true;
30 }
31
32 void ParsingContext::EndFunctionBody()
33 {
34 inFunctionBody = inFunctionBodyStack.top();
35 inFunctionBodyStack.pop();
36 }
37
38 void ParsingContext::BeginParsingLvalue()
39 {
40 parsingLvalueStack.push(parsingLvalue);
41 parsingLvalue = true;
42 }
43
44 void ParsingContext::EndParsingLvalue()
45 {
46 parsingLvalue = parsingLvalueStack.top();
47 parsingLvalueStack.pop();
48 }
49
50 void ParsingContext::BeginParsingArguments()
51 {
52 parsingArgumentsStack.push(parsingArguments);
53 parsingArguments = true;
54 }
55
56 void ParsingContext::EndParsingArguments()
57 {
58 parsingArguments = parsingArgumentsStack.top();
59 parsingArgumentsStack.pop();
60 }
61
62 } }