forked from eriksvedang/cakelisp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGeneratorHelpersEnums.hpp
55 lines (47 loc) · 1.41 KB
/
GeneratorHelpersEnums.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#pragma once
enum CStatementOperationType
{
// Insert keywordOrSymbol between each thing
Splice,
SpliceNoSpace,
OpenParen,
CloseParen,
// Open a scope. Always use when regular statements can be executed within
OpenScope,
CloseScope,
// Anything which responds to continue or break should open its scope with these
OpenContinueBreakableScope,
CloseContinueBreakableScope,
// Do not open a scope. Use only for declarations
OpenBlock,
CloseBlock,
// Used only for e.g. array initializers
OpenList,
CloseList,
// "Unnatural" flow control, i.e., cases where the normal CloseScope will not be hit
ContinueOrBreakInScope,
// return keyword
ExitAllScopes,
Keyword,
KeywordNoSpace,
// End the statement if it isn't an expression
SmartEndStatement,
// Arrays require appending the [] bit, which is too complicated for CStatementOperations
TypeNoArray,
// Evaluate argument(s)
Expression,
ExpressionOptional,
ExpressionList,
// Body will read the remaining arguments; argumentIndex will tell it where to start
Body,
// Similar to body, though doesn't evaluate more than one argument. Users can still use
// invocations which open scopes in order to provide multiple statements in a single Statement.
// Statements are in Body scope
Statement,
};
enum TokenizePushSpliceArgumentType
{
TokenizePushSpliceArgument_Array,
TokenizePushSpliceArgument_AllExpressions,
TokenizePushSpliceArgument_Expression
};