-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathparser1.h
68 lines (52 loc) · 1.58 KB
/
parser1.h
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
56
57
58
59
60
61
62
63
64
65
66
67
68
//
// AYA version 5
//
// 構文解析/中間コードの生成を行うクラス CParser1
// written by umeici. 2004
//
// 構文解析時にCParser0から一度だけCParser1::CheckExecutionCodeが実行されます。
//
#ifndef PARSER1H
#define PARSER1H
//----
#if defined(WIN32) || defined(_WIN32_WCE)
# include "stdafx.h"
#endif
#include <vector>
#include "globaldef.h"
class CVecint
{
public:
std::vector<int> i_array;
};
class CAyaVM;
class CStatement;
//----
class CParser1
{
private:
CAyaVM &vm;
CParser1(void);
public:
CParser1(CAyaVM &vmr) : vm(vmr) {
; //NOOP
}
char CheckExecutionCode(const yaya::string_t& dicfilename);
char CheckExecutionCode1(CStatement& st, const yaya::string_t& dicfilename);
protected:
char CheckNomialCount(CStatement& st, const yaya::string_t& dicfilename);
char CheckSubstSyntax(CStatement& st, const yaya::string_t& dicfilename);
char CheckFeedbackOperatorPos(CStatement& st, const yaya::string_t& dicfilename);
char SetFormulaType(CStatement& st, const yaya::string_t& dicfilename);
char SetBreakJumpNo(const yaya::string_t& dicfilename);
char CheckCaseSyntax(const yaya::string_t& dicfilename);
char CheckIfSyntax(const yaya::string_t& dicfilename);
char CheckElseSyntax(const yaya::string_t& dicfilename);
char CheckForSyntax(const yaya::string_t& dicfilename);
char CheckForeachSyntax(const yaya::string_t& dicfilename);
char SetIfJumpNo(const yaya::string_t& dicfilename);
char CheckFunctionArgument(CStatement& st, const yaya::string_t& dicfilename);
void CompleteSetting(void);
};
//----
#endif