約1ヶ月ぶりに再会(再開)で~す。
今までの仕様から定数、変数、演算子とキーワードをまとめてみる。
§まとめ
○定数
○変数
○演算子
○命令(ステートメント)
§語句解析
○その1(語句の切り出し)
○ヘッダ(語句解析のクラス)
§最後に
今までの仕様から定数、変数、演算子とキーワードをまとめてみる。
§まとめ
○定数
- 2進表現(&B[0-1])
- 8進表現(&O[0-7])
- 10進表現(&D[0-9])
- 16進表現(&H[0-9,A-Z,a-z])
- 小数表現(0-9.[0-9])
- 指数表現(0-9.[0-9]{E|e}[+|-]0-9)
- 文字列定数(ダブルクオーテーションで囲む)
○変数
- 先頭は英字文字と下線文字から始まる
- 最大63文字まで
- 大文字と小文字は区別されない
- 数字文字(0-9)
- 英字文字(A-Z,a-z)
- 下線文字(_)
- ピリオド(.)
○演算子
- +
- -
- *
- /
- ¥
- ^
- ==
- !=
- <
- >
- <=
- >=
- NOT
- EQV
- AND
- OR
- XOR
○命令(ステートメント)
- REM
- LET
- END
- DEFINT
- DEFDBL
- DEFSTR
- DIMINT
- DIMDBL
- DIMSTR
- IF
- ELSEIF
- ELSE
- ENDIF
- SWITCH
- CASE
- DEFAULT
- SEND
- FOR
- TO
- STEP
- NEXT
- WHILE
- WEND
- DO
- LOOP
- BREAK
- CONTINUE
- GOTO
- SUB
- GOSUB
- RETURN
§語句解析
○その1(語句の切り出し)
- 整数定数を切り出す(2進数,8進数,10進数,16進数)
- 実数定数を切り出す
- 文字列定数を切り出す(ダブルクオーテーション)
- 英数字を切り出す(変数,演算子の一部,ステートメント)
- 区切り文字を切り出す(演算子など)
○ヘッダ(語句解析のクラス)
//----------------------------------------------- // 語句解析のクラス //----------------------------------------------- class BasicGetToken { char *m_buff; char *m_tail; char *m_stop; char *m_token; size_t m_size; public: BasicGetToken(); ~BasicGetToken(); public: int getFileName( const char file[] ); int getFileRead( FILE *fp ); int getBuffRead( const char buff[] ); int getToken( char token[], size_t size ); private: int getFindKeyword( char string[] ); int getBetween( char top, char end, int retCode ); int getPunct(); int getLabel(); int getRadix(); int getNumber(); int getSymbol(); int getRemark(); size_t getFileLeng( FILE *fp ); };
§最後に
これからC++言語を用いて作成していきます。
※コメント投稿者のブログIDはブログ作成者のみに通知されます