1
2
3
4
5
6 #include <sngcm/cmparser/ParsingContext.hpp>
7
8 ParsingContext::ParsingContext() :
9 parsingExpressionStatement(false), parsingLvalue(false), parsingArguments(false), parsingIsOrAs(false), parsingTypeExpr(false), parsingConcept(false), parsingTemplateId(false)
10 {
11 }
12
13 void ParsingContext::PushParsingExpressionStatement(bool enable)
14 {
15 parsingExpressionStatementStack.push(parsingExpressionStatement);
16 parsingExpressionStatement = enable;
17 }
18
19 void ParsingContext::PopParsingExpressionStatement()
20 {
21 parsingExpressionStatement = parsingExpressionStatementStack.top();
22 parsingExpressionStatementStack.pop();
23 }
24
25 void ParsingContext::PushParsingLvalue(bool enable)
26 {
27 parsingLvalueStack.push(parsingLvalue);
28 parsingLvalue = enable;
29 }
30
31 void ParsingContext::PopParsingLvalue()
32 {
33 parsingLvalue = parsingLvalueStack.top();
34 parsingLvalueStack.pop();
35 }
36
37 void ParsingContext::BeginParsingArguments()
38 {
39 parsingArgumentsStack.push(parsingArguments);
40 parsingArguments = true;
41 }
42
43 void ParsingContext::EndParsingArguments()
44 {
45 parsingArguments = parsingArgumentsStack.top();
46 parsingArgumentsStack.pop();
47 }
48
49 void ParsingContext::PushParsingIsOrAs(bool enable)
50 {
51 parsingIsOrAsStack.push(parsingIsOrAs);
52 parsingIsOrAs = enable;
53 }
54
55 void ParsingContext::PopParsingIsOrAs()
56 {
57 parsingIsOrAs = parsingIsOrAsStack.top();
58 parsingIsOrAsStack.pop();
59 }
60
61 void ParsingContext::BeginParsingTypeExpr()
62 {
63 parsingTypeExprStack.push(parsingTypeExpr);
64 parsingTypeExpr = true;
65 }
66
67 void ParsingContext::EndParsingTypeExpr()
68 {
69 parsingTypeExpr = parsingTypeExprStack.top();
70 parsingTypeExprStack.pop();
71 }
72
73 void ParsingContext::BeginParsingConcept()
74 {
75 parsingConceptStack.push(parsingConcept);
76 parsingConcept = true;
77 }
78
79 void ParsingContext::EndParsingConcept()
80 {
81 parsingConcept = parsingConceptStack.top();
82 parsingConceptStack.pop();
83 }
84
85 void ParsingContext::BeginParsingTemplateId()
86 {
87 parsingTemplateIdStack.push(parsingTemplateId);
88 parsingTemplateId = true;
89 }
90
91 void ParsingContext::EndParsingTemplateId()
92 {
93 parsingTemplateId = parsingTemplateIdStack.top();
94 parsingTemplateIdStack.pop();
95 }