?? c.c
字號:
# 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!) */static STATUS hid0 (){PARSER cast, brktexpr;static STATUS p_tok;p_tok = (TOPARSER cast) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER brktexpr) ();}static STATUS hid1 (){PARSER constant, hid0;static STATUS p_tok;p_tok = (TOPARSER constant) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER hid0) ();}static STATUS hid2 (){PARSER cvar, hid1;static STATUS p_tok;p_tok = (TOPARSER cvar) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER hid1) ();}static STATUS hid3 (){PARSER yvar, hid2;static STATUS p_tok;p_tok = (TOPARSER yvar) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER hid2) ();}static STATUS hid4 (){PARSER arrayexpr, hid3;static STATUS p_tok;p_tok = (TOPARSER arrayexpr) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER hid3) ();}static STATUS hid5 (){PARSER fnexpr, hid4;static STATUS p_tok;p_tok = (TOPARSER fnexpr) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER hid4) ();}static STATUS hid6 (){PARSER monexpr, hid5;static STATUS p_tok;p_tok = (TOPARSER monexpr) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER hid5) ();}STATUS atomexpr(){PARSER hid6;return((TOPARSER hid6)());}static VOID hid7(){ VV(2)=V(2); }static STATUS hid8(){PARSER brkttype;ACTION hid7;return p_attach0n(TOPARSER brkttype,0,hid7,0);}static STATUS hid9(){PARSER hid8;return p_many0n(TOPARSER hid8,0);}static STATUS hid10(){PARSER hid9, atomexpr;static STATUS p_tok;P_PAND((TOPARSER hid9)(),(TOPARSER atomexpr)());return p_tok;}static STATUS hid11(){PARSER brkttype, hid10;static STATUS p_tok;P_PAND((TOPARSER brkttype)(),(TOPARSER hid10)());return p_tok;}static VOID hid12(){VV(2)=V(2);}static STATUS hid13(){PARSER hid11;ACTION hid12;return p_attach0n(TOPARSER hid11,0,hid12,0);}STATUS cast(){PARSER hid13;return((TOPARSER hid13)());}static STATUS hid14 (){PARSER brkttype, IDENTIFIER;static STATUS p_tok;p_tok = (TOPARSER brkttype) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER IDENTIFIER) ();}STATUS atomtype(){PARSER hid14;return((TOPARSER hid14)());}static STATUS hid15(){PARSER WHITESPACE, typeconstruct;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER typeconstruct)());return p_tok;}static VOID hid16(){ VV(3)=V(1); }static STATUS hid17(){PARSER hid15;ACTION hid16;return p_attach0n(TOPARSER hid15,0,hid16,0);}static STATUS hid18(){PARSER hid17, p_nothing0;static STATUS p_tok;P_PAND((TOPARSER hid17)(),(TOPARSER p_nothing0)());return p_tok;}static STATUS hid19(){PARSER hid18;return p_many0n(TOPARSER hid18,0);}static STATUS hid20(){PARSER atomtype, hid19;static STATUS p_tok;P_PAND((TOPARSER atomtype)(),(TOPARSER hid19)());return p_tok;}STATUS type(){PARSER hid20;return((TOPARSER hid20)());}static STATUS hid21(){PARSER WHITESPACE, closeparen;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER closeparen)());return p_tok;}static STATUS hid22(){PARSER type, hid21;static STATUS p_tok;P_PAND((TOPARSER type)(),(TOPARSER hid21)());return p_tok;}static STATUS hid23(){PARSER WHITESPACE, hid22;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER hid22)());return p_tok;}static STATUS hid24(){PARSER openparen, hid23;static STATUS p_tok;P_PAND((TOPARSER openparen)(),(TOPARSER hid23)());return p_tok;}static VOID hid25(){VV(5)=V(3);}static STATUS hid26(){PARSER hid24;ACTION hid25;return p_attach0n(TOPARSER hid24,0,hid25,0);}STATUS brkttype(){PARSER hid26;return((TOPARSER hid26)());}static VOID hid27(){ putchar('*'); }static STATUS hid28(){PARSER STAR;ACTION hid27;return p_attach0n(TOPARSER STAR,0,hid27,0);}STATUS star(){PARSER hid28;return((TOPARSER hid28)());}static STATUS hid29(){PARSER WHITESPACE, closeparen;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER closeparen)());return p_tok;}static STATUS hid30(){PARSER openparen, hid29;static STATUS p_tok;P_PAND((TOPARSER openparen)(),(TOPARSER hid29)());return p_tok;}static VOID hid31(){VV(3)=V(1);}static STATUS hid32(){PARSER hid30;ACTION hid31;return p_attach0n(TOPARSER hid30,0,hid31,0);}static STATUS hid33(){PARSER hid32, p_nothing0;static STATUS p_tok;P_PAND((TOPARSER hid32)(),(TOPARSER p_nothing0)());return p_tok;}static STATUS hid34(){PARSER WHITESPACE, closebracket;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER closebracket)());return p_tok;}static STATUS hid35(){PARSER openbracket, hid34;static STATUS p_tok;P_PAND((TOPARSER openbracket)(),(TOPARSER hid34)());return p_tok;}static VOID hid36(){VV(3)=V(1);}static STATUS hid37(){PARSER hid35;ACTION hid36;return p_attach0n(TOPARSER hid35,0,hid36,0);}static STATUS hid38 (){PARSER hid33, hid37;static STATUS p_tok;p_tok = (TOPARSER hid33) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER hid37) ();}static STATUS hid39 (){PARSER star, hid38;static STATUS p_tok;p_tok = (TOPARSER star) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER hid38) ();}STATUS typeconstruct(){PARSER hid39;return((TOPARSER hid39)());}STATUS cvar(){PARSER IDENTIFIER;return((TOPARSER IDENTIFIER)());}STATUS yvar(){PARSER DOLLARID;return((TOPARSER DOLLARID)());}static STATUS hid40 (){PARSER STRING, CHARCONST;static STATUS p_tok;p_tok = (TOPARSER STRING) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER CHARCONST) ();}static STATUS hid41 (){PARSER NUMBER, hid40;static STATUS p_tok;p_tok = (TOPARSER NUMBER) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER hid40) ();}STATUS constant(){PARSER hid41;return((TOPARSER hid41)());}static STATUS hid42(){PARSER WHITESPACE, expr;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER expr)());return p_tok;}static STATUS hid43(){PARSER binop, hid42;static STATUS p_tok;P_PAND((TOPARSER binop)(),(TOPARSER hid42)());return p_tok;}static STATUS hid44(){PARSER WHITESPACE, hid43;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER hid43)());return p_tok;}static VOID hid45(){ VV(5) = V(1); }static STATUS hid46(){PARSER hid44;ACTION hid45;return p_attach0n(TOPARSER hid44,0,hid45,0);}static STATUS hid47(){PARSER hid46, p_nothing0;static STATUS p_tok;P_PAND((TOPARSER hid46)(),(TOPARSER p_nothing0)());return p_tok;}static STATUS hid48(){PARSER hid47;return p_many0n(TOPARSER hid47,0);}static STATUS hid49(){PARSER atomexpr, hid48;static STATUS p_tok;P_PAND((TOPARSER atomexpr)(),(TOPARSER hid48)());return p_tok;}STATUS expr(){PARSER hid49;return((TOPARSER hid49)());}static STATUS hid50(){PARSER monop, atomexpr;static STATUS p_tok;P_PAND((TOPARSER monop)(),(TOPARSER atomexpr)());return p_tok;}static VOID hid51(){ VV(2)=V(2); }static STATUS hid52(){PARSER hid50;ACTION hid51;return p_attach0n(TOPARSER hid50,0,hid51,0);}static STATUS hid53(){PARSER hid52, p_nothing0;static STATUS p_tok;P_PAND((TOPARSER hid52)(),(TOPARSER p_nothing0)());return p_tok;}STATUS monexpr(){PARSER hid53;return((TOPARSER hid53)());}static STATUS hid54(){PARSER WHITESPACE, rdbrktargs;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER rdbrktargs)());return p_tok;}static STATUS hid55(){PARSER IDENTIFIER, hid54;static STATUS p_tok;P_PAND((TOPARSER IDENTIFIER)(),(TOPARSER hid54)());return p_tok;}static VOID hid56(){ VV(3)=V(1); }static STATUS hid57(){PARSER hid55;ACTION hid56;return p_attach0n(TOPARSER hid55,0,hid56,0);}static STATUS hid58(){PARSER hid57, p_nothing0;static STATUS p_tok;P_PAND((TOPARSER hid57)(),(TOPARSER p_nothing0)());return p_tok;}STATUS fnexpr(){PARSER hid58;return((TOPARSER hid58)());}static STATUS hid59(){PARSER WHITESPACE, sqbrktargs;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER sqbrktargs)());return p_tok;}static STATUS hid60(){PARSER IDENTIFIER, hid59;static STATUS p_tok;P_PAND((TOPARSER IDENTIFIER)(),(TOPARSER hid59)());return p_tok;}static VOID hid61(){VV(3)=V(1);}static STATUS hid62(){PARSER hid60;ACTION hid61;return p_attach0n(TOPARSER hid60,0,hid61,0);}static STATUS hid63(){PARSER hid62, p_nothing0;static STATUS p_tok;P_PAND((TOPARSER hid62)(),(TOPARSER p_nothing0)());return p_tok;}STATUS arrayexpr(){PARSER hid63;return((TOPARSER hid63)());}static STATUS hid64(){PARSER WHITESPACE, closeparen;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER closeparen)());return p_tok;}static STATUS hid65(){PARSER someargs, hid64;static STATUS p_tok;P_PAND((TOPARSER someargs)(),(TOPARSER hid64)());return p_tok;}static STATUS hid66(){PARSER WHITESPACE, hid65;static STATUS p_tok;P_PAND((TOPARSER WHITESPACE)(),(TOPARSER hid65)());return p_tok;}static STATUS hid67(){PARSER openparen, hid66;static STATUS p_tok;P_PAND((TOPARSER openparen)(),(TOPARSER hid66)());return p_tok;}static VOID hid68(){ VV(5)=V(3); }static STATUS hid69(){PARSER hid67;ACTION hid68;return p_attach0n(TOPARSER hid67,0,hid68,0);}STATUS brktexpr(){PARSER hid69;return((TOPARSER hid69)());}STATUS comment(){PARSER COMMENT;return((TOPARSER COMMENT)());} /* overgenerous - allows arbitrary infixes so long as they have the right chars in them */static VOID hid70(){ VV(2)=V(1); }static STATUS hid71(){PARSER binopone;ACTION hid70;return p_attach0n(TOPARSER binopone,0,hid70,0);}static STATUS hid72(){PARSER hid71, p_nothing0;static STATUS p_tok;P_PAND((TOPARSER hid71)(),(TOPARSER p_nothing0)());return p_tok;}static STATUS hid73(){PARSER hid72;return p_many0n(TOPARSER hid72,0);}static STATUS hid74(){PARSER binopone, hid73;static STATUS p_tok;P_PAND((TOPARSER binopone)(),(TOPARSER hid73)());return p_tok;}STATUS binop(){PARSER hid74;return((TOPARSER hid74)());}static VOID hid75(){ VV(1)=putchar(T(1)); }static STATUS hid76(){PARSER BINOPCHAR;ACTION hid75;return p_attach0n(TOPARSER BINOPCHAR,0,hid75,0);}STATUS binopone(){PARSER hid76;return((TOPARSER hid76)());}static VOID hid77(){VV(1)=putname("++");}static STATUS hid78(){PARSER PLUSPLUS;ACTION hid77;return p_attach0n(TOPARSER PLUSPLUS,0,hid77,0);}static STATUS hid79(){PARSER hid78, p_nothing0;static STATUS p_tok;P_PAND((TOPARSER hid78)(),(TOPARSER p_nothing0)());return p_tok;}static VOID hid80(){VV(1)=putname("--");}static STATUS hid81(){PARSER MINUSMINUS;ACTION hid80;return p_attach0n(TOPARSER MINUSMINUS,0,hid80,0);}static STATUS hid82(){PARSER hid81, p_nothing0;static STATUS p_tok;P_PAND((TOPARSER hid81)(),(TOPARSER p_nothing0)());return p_tok;}static STATUS hid83 (){PARSER hid79, hid82;static STATUS p_tok;p_tok = (TOPARSER hid79) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER hid82) ();}STATUS monoptwo(){PARSER hid83;return((TOPARSER hid83)());}static VOID hid84(){putchar(T(1));}static STATUS hid85(){PARSER MONOPCHAR;ACTION hid84;return p_attach0n(TOPARSER MONOPCHAR,0,hid84,0);}STATUS monopone(){PARSER hid85;return((TOPARSER hid85)());}static STATUS hid86 (){PARSER monoptwo, monopone;static STATUS p_tok;p_tok = (TOPARSER monoptwo) ();return (GOODSTATUS(p_tok))?p_tok:(TOPARSER monopone) ();}STATUS monop(){PARSER hid86;return((TOPARSER hid86)());}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -