- 論壇徽章:
- 0
|
本帖最后由 626788149 于 2016-04-13 20:36 編輯
介紹
這個語言與c語言非常相似,也與現(xiàn)有的很多程序設計語言有很多共同點。但也有很多地方與c語言不同,比如c-mini包含了foreach循環(huán)語句,在函數(shù)體中變量的聲明順序也與c語言不同。不同元素的類型使用不同的字體來表示:
關(guān)鍵字: for,while,foreach
記號TOKEN: ID,NUMLITERAL,STRLITERAL
非終結(jié)符:Nonterminals
TOKEN 的定義
letter = a | . . . | z | A | . . . | Z
digit = 0 | . . . | 9
NUMLITERAL = [+ | -] digit+
ID = letter (letter | digit)∗
STRLITERAL= "任何除了" 以外的字符"
BOOLITERAL = true | false
Comments = /* ......anything but except * /...... */
Whitespace =制表符,空格,換行
Keywords = for | while | foreach | int | bool | char | void | if | else | return | break | true | false | def | in
typedef enum {
ENDFILE , ERROR,
/*multicharacter symbols*/
ID, NUM , STRING,
/*reserved word*/
FOREACH , WHILE , INT , BOOL , CHAR , VOID , IF ,
ELSE , RETURN , BREAK , TRUE , FALSE, DEF,
/*SPECIAL SYMBOLS*/
SEMI,ASSIGN,EQ,LT,BT,LQ,BQ,PLUS,MINUS,TIMES,
OVER,LEFTPAREN,RIGHTPAREN,COMMA,CURLYBRACESL,
CURLYBRACESR,PLUSPLUS,MINUSMINUS,SQUAREBRACKL,SQUAREBRACKR,
/*whitespace*/
BLANK,TABLE,NEWLINE
} TokenType;
目標
我打算先寫解釋器,解釋器完成以后再寫代碼生成器生成字節(jié)碼 |
|