1 // =================================
 2 // Copyright (c) 2020 Seppo Laakko
 3 // Distributed under the MIT license
 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 } } // namespace sngcpp::cppparser