?? c.y
字號:
# define TOKEN char# define VALUE char*# define STACKTOKENS 1# define STACKSIZE 2048# include "cc.h"# include "preccx.h"# undef UNSETNAME# include "preamble.h" /* -- a shot at C-expressions -- (just in order to count brackets!) */@ atomexpr = monexpr@ | fnexpr@ | arrayexpr@ | yvar@ | cvar@ | constant@ | cast@ | brktexpr@ cast = brkttype { brkttype : VV(2)=V(2); :}* atomexpr :VV(2)=V(2);:@ atomtype = brkttype@ | IDENTIFIER@ type = atomtype { WHITESPACE typeconstruct : VV(3)=V(1); : }*@ brkttype = openparen WHITESPACE type WHITESPACE closeparen :VV(5)=V(3);:@ star = STAR : putchar('*'); :@ typeconstruct = star @ | openparen WHITESPACE closeparen :VV(3)=V(1);:@ | openbracket WHITESPACE closebracket :VV(3)=V(1);:@ cvar = IDENTIFIER@ yvar = DOLLARID@ constant = NUMBER@ | STRING@ | CHARCONST@ expr = atomexpr { WHITESPACE binop WHITESPACE expr : VV(5) = V(1); : }*@ monexpr = monop atomexpr : VV(2)=V(2); : @ fnexpr = IDENTIFIER WHITESPACE rdbrktargs : VV(3)=V(1); : @ arrayexpr= IDENTIFIER WHITESPACE sqbrktargs :VV(3)=V(1);: @ brktexpr = openparen WHITESPACE someargs WHITESPACE closeparen : VV(5)=V(3); :@ comment = COMMENT /* overgenerous - allows arbitrary infixes so long as they have the right chars in them */@ binop = binopone { binopone : VV(2)=V(1); : }*@ binopone = BINOPCHAR : VV(1)=putchar(T(1)); :@ monoptwo = PLUSPLUS :VV(1)=putname("++");: @ | MINUSMINUS :VV(1)=putname("--");: @ monopone = MONOPCHAR :putchar(T(1));:@ monop = monoptwo@ | monopone
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -