|
enum | SCPP::ExprType {
Int,
SCPP::ExprType::Not,
SCPP::ExprType::Bin,
SCPP::ExprType::Seq,
SCPP::ExprType::Assign,
SCPP::ExprType::Ident,
SCPP::ExprType::If,
SCPP::ExprType::While,
SCPP::ExprType::For,
SCPP::ExprType::Call
} |
| 式の種別を表す列挙体 More...
|
|
enum | SCPP::Op {
Add,
Sub,
Mul,
Div,
Mod,
And,
Or,
Nor,
Nand,
Xor,
Lt,
Leq,
Gt,
Geq,
Eq,
Neq
} |
| 二項演算の演算子を表す列挙体 More...
|
|
|
struct Expr | SCPP::tInt (int value) |
| 整数型の式を作成する More...
|
|
struct Expr | SCPP::tNot (struct Expr expr) |
| 論理否定の式を作成する More...
|
|
struct Expr | SCPP::tAdd (struct Expr left, struct Expr right) |
| 加算の式を作成する More...
|
|
struct Expr | SCPP::tSub (struct Expr left, struct Expr right) |
| 減算の式を作成する More...
|
|
struct Expr | SCPP::tMul (struct Expr left, struct Expr right) |
| 乗算の式を作成する More...
|
|
struct Expr | SCPP::tDiv (struct Expr left, struct Expr right) |
| 除算の式を作成する More...
|
|
struct Expr | SCPP::tMod (struct Expr left, struct Expr right) |
| 剰余の式を作成する More...
|
|
struct Expr | SCPP::tAnd (struct Expr left, struct Expr right) |
| 論理ANDの式を作成する More...
|
|
struct Expr | SCPP::tOr (struct Expr left, struct Expr right) |
| 論理ORの式を作成する More...
|
|
struct Expr | SCPP::tNor (struct Expr left, struct Expr right) |
| 論理NORの式を作成する More...
|
|
struct Expr | SCPP::tNand (struct Expr left, struct Expr right) |
| 論理NANDの式を作成する More...
|
|
struct Expr | SCPP::tXor (struct Expr left, struct Expr right) |
| 論理XORの式を作成する More...
|
|
struct Expr | SCPP::tLt (struct Expr left, struct Expr right) |
| 比較演算(未満)の式を作成する More...
|
|
struct Expr | SCPP::tLeq (struct Expr left, struct Expr right) |
| 比較演算(以下)の式を作成する More...
|
|
struct Expr | SCPP::tGt (struct Expr left, struct Expr right) |
| 比較演算(より大きい)の式を作成する More...
|
|
struct Expr | SCPP::tGeq (struct Expr left, struct Expr right) |
| 比較演算(以上)の式を作成する More...
|
|
struct Expr | SCPP::tEq (struct Expr left, struct Expr right) |
| 比較演算(等しい)の式を作成する More...
|
|
struct Expr | SCPP::tNeq (struct Expr left, struct Expr right) |
| 比較演算(等しくない)の式を作成する More...
|
|
template<class... Args> |
struct Expr | SCPP::tSeq (Args... args) |
| 連接式を作成する More...
|
|
struct Expr | SCPP::tAssign (string name, struct Expr value) |
| 変数代入式を作成する More...
|
|
struct Expr | SCPP::tIdent (string name) |
| 変数参照式を作成する More...
|
|
struct Expr | SCPP::tIf (struct Expr condition, struct Expr thenClause, struct Expr elseClause=tInt(0)) |
| if式を作成する More...
|
|
struct Expr | SCPP::tWhile (struct Expr condition, struct Expr body) |
| while式を作成する More...
|
|
struct Expr | SCPP::tFor (struct Expr init, struct Expr condition, struct Expr update, struct Expr body) |
| for式を作成する More...
|
|
template<class... Args> |
struct SProgram | SCPP::tProgram (list< struct SFunction > functions, Args... bodies) |
| 一つのプログラムを表す構造体を作成する More...
|
|
template<class... Args> |
list< struct SFunction > | SCPP::FunctionList (Args... functions) |
| 関数リストを作成する More...
|
|
template<class... Args> |
struct SFunction | SCPP::tFunction (string name, list< string > args, Args... bodies) |
| 関数定義を作成する More...
|
|
template<class... Args> |
list< string > | SCPP::ParamList (Args... args) |
| 引数のリストを作成する More...
|
|
template<class... Args> |
struct Expr | SCPP::tCall (string name, Args... args) |
| 関数呼び出し式を作成する More...
|
|
Abstract Syntax Tree for SCPP.
- Author
- Konishi, Hiroto