diff options
author | Sander Vesik <svesik@openoffice.org> | 2004-04-21 12:24:47 +0000 |
---|---|---|
committer | Sander Vesik <svesik@openoffice.org> | 2004-04-21 12:24:47 +0000 |
commit | a0b80dd4ed826f117f29efc05af587a413da8287 (patch) | |
tree | dc42aeee1f29911fb137cde6f7a3ae265927ab2f /soltools | |
parent | 7dca155e22a3a911eb9d7e1a47e110c026eaefb6 (diff) |
INTEGRATION: CWS ooo20040329 (1.2.48); FILE MERGED
2004/03/17 12:45:51 waratah 1.2.48.1: #i1858# add braces around each structure initialiser
make the if test for characters explict and add code to make it work for S390 as well
Diffstat (limited to 'soltools')
-rw-r--r-- | soltools/cpp/_lex.c | 254 |
1 files changed, 128 insertions, 126 deletions
diff --git a/soltools/cpp/_lex.c b/soltools/cpp/_lex.c index da5cb02cf083..1f9e262a49d4 100644 --- a/soltools/cpp/_lex.c +++ b/soltools/cpp/_lex.c @@ -7,7 +7,6 @@ #include <unistd.h> #endif #include "cpp.h" - /* * lexical FSM encoding * when in state state, and one of the characters @@ -59,183 +58,183 @@ struct fsm /*const*/ struct fsm fsm[] = { /* start state */ - START, {C_XX}, ACT(UNCLASS, S_SELF), - START, {' ', '\t', '\v'}, WS1, - START, {C_NUM}, NUM1, - START, {'.'}, NUM3, - START, {C_ALPH}, ID1, - START, {'L'}, ST1, - START, {'"'}, ST2, - START, {'\''}, CC1, - START, {'/'}, COM1, - START, {EOFC}, S_EOF, - START, {'\n'}, S_NL, - START, {'-'}, MINUS1, - START, {'+'}, PLUS1, - START, {'<'}, LT1, - START, {'>'}, GT1, - START, {'='}, ASG1, - START, {'!'}, NOT1, - START, {'&'}, AND1, - START, {'|'}, OR1, - START, {'#'}, SHARP1, - START, {'%'}, PCT1, - START, {'['}, ACT(SBRA, S_SELF), - START, {']'}, ACT(SKET, S_SELF), - START, {'('}, ACT(LP, S_SELF), - START, {')'}, ACT(RP, S_SELF), - START, {'*'}, STAR1, - START, {','}, ACT(COMMA, S_SELF), - START, {'?'}, ACT(QUEST, S_SELF), - START, {':'}, ACT(COLON, S_SELF), - START, {';'}, ACT(SEMIC, S_SELF), - START, {'{'}, ACT(CBRA, S_SELF), - START, {'}'}, ACT(CKET, S_SELF), - START, {'~'}, ACT(TILDE, S_SELF), - START, {'^'}, CIRC1, + {START, {C_XX}, ACT(UNCLASS, S_SELF)}, + {START, {' ', '\t', '\v'}, WS1}, + {START, {C_NUM}, NUM1}, + {START, {'.'}, NUM3}, + {START, {C_ALPH}, ID1}, + {START, {'L'}, ST1}, + {START, {'"'}, ST2}, + {START, {'\''}, CC1}, + {START, {'/'}, COM1}, + {START, {EOFC}, S_EOF}, + {START, {'\n'}, S_NL}, + {START, {'-'}, MINUS1}, + {START, {'+'}, PLUS1}, + {START, {'<'}, LT1}, + {START, {'>'}, GT1}, + {START, {'='}, ASG1}, + {START, {'!'}, NOT1}, + {START, {'&'}, AND1}, + {START, {'|'}, OR1}, + {START, {'#'}, SHARP1}, + {START, {'%'}, PCT1}, + {START, {'['}, ACT(SBRA, S_SELF)}, + {START, {']'}, ACT(SKET, S_SELF)}, + {START, {'('}, ACT(LP, S_SELF)}, + {START, {')'}, ACT(RP, S_SELF)}, + {START, {'*'}, STAR1}, + {START, {','}, ACT(COMMA, S_SELF)}, + {START, {'?'}, ACT(QUEST, S_SELF)}, + {START, {':'}, ACT(COLON, S_SELF)}, + {START, {';'}, ACT(SEMIC, S_SELF)}, + {START, {'{'}, ACT(CBRA, S_SELF)}, + {START, {'}'}, ACT(CKET, S_SELF)}, + {START, {'~'}, ACT(TILDE, S_SELF)}, + {START, {'^'}, CIRC1}, /* saw a digit */ - NUM1, {C_XX}, ACT(NUMBER, S_SELFB), - NUM1, {C_NUM, C_ALPH, '.'}, NUM1, - NUM1, {'E', 'e'}, NUM2, - NUM1, {'_'}, ACT(NUMBER, S_SELFB), + {NUM1, {C_XX}, ACT(NUMBER, S_SELFB)}, + {NUM1, {C_NUM, C_ALPH, '.'}, NUM1}, + {NUM1, {'E', 'e'}, NUM2}, + {NUM1, {'_'}, ACT(NUMBER, S_SELFB)}, /* saw possible start of exponent, digits-e */ - NUM2, {C_XX}, ACT(NUMBER, S_SELFB), - NUM2, {'+', '-'}, NUM1, - NUM2, {C_NUM, C_ALPH}, NUM1, - NUM2, {'_'}, ACT(NUMBER, S_SELFB), + {NUM2, {C_XX}, ACT(NUMBER, S_SELFB)}, + {NUM2, {'+', '-'}, NUM1}, + {NUM2, {C_NUM, C_ALPH}, NUM1}, + {NUM2, {'_'}, ACT(NUMBER, S_SELFB)}, /* saw a '.', which could be a number or an operator */ - NUM3, {C_XX}, ACT(DOT, S_SELFB), - NUM3, {'.'}, DOTS1, - NUM3, {C_NUM}, NUM1, + {NUM3, {C_XX}, ACT(DOT, S_SELFB)}, + {NUM3, {'.'}, DOTS1}, + {NUM3, {C_NUM}, NUM1}, - DOTS1, {C_XX}, ACT(UNCLASS, S_SELFB), - DOTS1, {C_NUM}, NUM1, - DOTS1, {'.'}, ACT(ELLIPS, S_SELF), + {DOTS1, {C_XX}, ACT(UNCLASS, S_SELFB)}, + {DOTS1, {C_NUM}, NUM1}, + {DOTS1, {'.'}, ACT(ELLIPS, S_SELF)}, /* saw a letter or _ */ - ID1, {C_XX}, ACT(NAME, S_NAME), - ID1, {C_ALPH, C_NUM}, ID1, + {ID1, {C_XX}, ACT(NAME, S_NAME)}, + {ID1, {C_ALPH, C_NUM}, ID1}, /* saw L (start of wide string?) */ - ST1, {C_XX}, ACT(NAME, S_NAME), - ST1, {C_ALPH, C_NUM}, ID1, - ST1, {'"'}, ST2, - ST1, {'\''}, CC1, + {ST1, {C_XX}, ACT(NAME, S_NAME)}, + {ST1, {C_ALPH, C_NUM}, ID1}, + {ST1, {'"'}, ST2}, + {ST1, {'\''}, CC1}, /* saw " beginning string */ - ST2, {C_XX}, ST2, - ST2, {'"'}, ACT(STRING, S_SELF), - ST2, {'\\'}, ST3, - ST2, {'\n'}, S_STNL, - ST2, {EOFC}, S_EOFSTR, + {ST2, {C_XX}, ST2}, + {ST2, {'"'}, ACT(STRING, S_SELF)}, + {ST2, {'\\'}, ST3}, + {ST2, {'\n'}, S_STNL}, + {ST2, {EOFC}, S_EOFSTR}, /* saw \ in string */ - ST3, {C_XX}, ST2, - ST3, {'\n'}, S_STNL, - ST3, {EOFC}, S_EOFSTR, + {ST3, {C_XX}, ST2}, + {ST3, {'\n'}, S_STNL}, + {ST3, {EOFC}, S_EOFSTR}, /* saw ' beginning character const */ - CC1, {C_XX}, CC1, - CC1, {'\''}, ACT(CCON, S_SELF), - CC1, {'\\'}, CC2, - CC1, {'\n'}, S_STNL, - CC1, {EOFC}, S_EOFSTR, + {CC1, {C_XX}, CC1}, + {CC1, {'\''}, ACT(CCON, S_SELF)}, + {CC1, {'\\'}, CC2}, + {CC1, {'\n'}, S_STNL}, + {CC1, {EOFC}, S_EOFSTR}, /* saw \ in ccon */ - CC2, {C_XX}, CC1, - CC2, {'\n'}, S_STNL, - CC2, {EOFC}, S_EOFSTR, + {CC2, {C_XX}, CC1}, + {CC2, {'\n'}, S_STNL}, + {CC2, {EOFC}, S_EOFSTR}, /* saw /, perhaps start of comment */ - COM1, {C_XX}, ACT(SLASH, S_SELFB), - COM1, {'='}, ACT(ASSLASH, S_SELF), - COM1, {'*'}, COM2, - COM1, {'/'}, COM4, + {COM1, {C_XX}, ACT(SLASH, S_SELFB)}, + {COM1, {'='}, ACT(ASSLASH, S_SELF)}, + {COM1, {'*'}, COM2}, + {COM1, {'/'}, COM4}, /* saw "/*", start of comment */ - COM2, {C_XX}, COM2, - COM2, {'\n'}, S_COMNL, - COM2, {'*'}, COM3, - COM2, {EOFC}, S_EOFCOM, + {COM2, {C_XX}, COM2}, + {COM2, {'\n'}, S_COMNL}, + {COM2, {'*'}, COM3}, + {COM2, {EOFC}, S_EOFCOM}, /* saw the * possibly ending a comment */ - COM3, {C_XX}, COM2, - COM3, {'\n'}, S_COMNL, - COM3, {'*'}, COM3, - COM3, {'/'}, S_COMMENT, + {COM3, {C_XX}, COM2}, + {COM3, {'\n'}, S_COMNL}, + {COM3, {'*'}, COM3}, + {COM3, {'/'}, S_COMMENT}, /* // comment */ - COM4, {C_XX}, COM4, - COM4, {'\n'}, S_NL, - COM4, {EOFC}, S_EOFCOM, + {COM4, {C_XX}, COM4}, + {COM4, {'\n'}, S_NL}, + {COM4, {EOFC}, S_EOFCOM}, /* saw white space, eat it up */ - WS1, {C_XX}, S_WS, - WS1, {'\t', '\v', ' '}, WS1, + {WS1, {C_XX}, S_WS}, + {WS1, {'\t', '\v', ' '}, WS1}, /* saw -, check --, -=, -> */ - MINUS1, {C_XX}, ACT(MINUS, S_SELFB), - MINUS1, {'-'}, ACT(MMINUS, S_SELF), - MINUS1, {'='}, ACT(ASMINUS, S_SELF), - MINUS1, {'>'}, ACT(ARROW, S_SELF), + {MINUS1, {C_XX}, ACT(MINUS, S_SELFB)}, + {MINUS1, {'-'}, ACT(MMINUS, S_SELF)}, + {MINUS1, {'='}, ACT(ASMINUS, S_SELF)}, + {MINUS1, {'>'}, ACT(ARROW, S_SELF)}, /* saw +, check ++, += */ - PLUS1, {C_XX}, ACT(PLUS, S_SELFB), - PLUS1, {'+'}, ACT(PPLUS, S_SELF), - PLUS1, {'='}, ACT(ASPLUS, S_SELF), + {PLUS1, {C_XX}, ACT(PLUS, S_SELFB)}, + {PLUS1, {'+'}, ACT(PPLUS, S_SELF)}, + {PLUS1, {'='}, ACT(ASPLUS, S_SELF)}, /* saw <, check <<, <<=, <= */ - LT1, {C_XX}, ACT(LT, S_SELFB), - LT1, {'<'}, LT2, - LT1, {'='}, ACT(LEQ, S_SELF), - LT2, {C_XX}, ACT(LSH, S_SELFB), - LT2, {'='}, ACT(ASLSH, S_SELF), + {LT1, {C_XX}, ACT(LT, S_SELFB)}, + {LT1, {'<'}, LT2}, + {LT1, {'='}, ACT(LEQ, S_SELF)}, + {LT2, {C_XX}, ACT(LSH, S_SELFB)}, + {LT2, {'='}, ACT(ASLSH, S_SELF)}, /* saw >, check >>, >>=, >= */ - GT1, {C_XX}, ACT(GT, S_SELFB), - GT1, {'>'}, GT2, - GT1, {'='}, ACT(GEQ, S_SELF), - GT2, {C_XX}, ACT(RSH, S_SELFB), - GT2, {'='}, ACT(ASRSH, S_SELF), + {GT1, {C_XX}, ACT(GT, S_SELFB)}, + {GT1, {'>'}, GT2}, + {GT1, {'='}, ACT(GEQ, S_SELF)}, + {GT2, {C_XX}, ACT(RSH, S_SELFB)}, + {GT2, {'='}, ACT(ASRSH, S_SELF)}, /* = */ - ASG1, {C_XX}, ACT(ASGN, S_SELFB), - ASG1, {'='}, ACT(EQ, S_SELF), + {ASG1, {C_XX}, ACT(ASGN, S_SELFB)}, + {ASG1, {'='}, ACT(EQ, S_SELF)}, /* ! */ - NOT1, {C_XX}, ACT(NOT, S_SELFB), - NOT1, {'='}, ACT(NEQ, S_SELF), + {NOT1, {C_XX}, ACT(NOT, S_SELFB)}, + {NOT1, {'='}, ACT(NEQ, S_SELF)}, /* & */ - AND1, {C_XX}, ACT(AND, S_SELFB), - AND1, {'&'}, ACT(LAND, S_SELF), - AND1, {'='}, ACT(ASAND, S_SELF), + {AND1, {C_XX}, ACT(AND, S_SELFB)}, + {AND1, {'&'}, ACT(LAND, S_SELF)}, + {AND1, {'='}, ACT(ASAND, S_SELF)}, /* | */ - OR1, {C_XX}, ACT(OR, S_SELFB), - OR1, {'|'}, ACT(LOR, S_SELF), - OR1, {'='}, ACT(ASOR, S_SELF), + {OR1, {C_XX}, ACT(OR, S_SELFB)}, + {OR1, {'|'}, ACT(LOR, S_SELF)}, + {OR1, {'='}, ACT(ASOR, S_SELF)}, /* # */ - SHARP1, {C_XX}, ACT(SHARP, S_SELFB), - SHARP1, {'#'}, ACT(DSHARP, S_SELF), + {SHARP1, {C_XX}, ACT(SHARP, S_SELFB)}, + {SHARP1, {'#'}, ACT(DSHARP, S_SELF)}, /* % */ - PCT1, {C_XX}, ACT(PCT, S_SELFB), - PCT1, {'='}, ACT(ASPCT, S_SELF), + {PCT1, {C_XX}, ACT(PCT, S_SELFB)}, + {PCT1, {'='}, ACT(ASPCT, S_SELF)}, /* * */ - STAR1, {C_XX}, ACT(STAR, S_SELFB), - STAR1, {'='}, ACT(ASSTAR, S_SELF), + {STAR1, {C_XX}, ACT(STAR, S_SELFB)}, + {STAR1, {'='}, ACT(ASSTAR, S_SELF)}, /* ^ */ - CIRC1, {C_XX}, ACT(CIRC, S_SELFB), - CIRC1, {'='}, ACT(ASCIRC, S_SELF), + {CIRC1, {C_XX}, ACT(CIRC, S_SELFB)}, + {CIRC1, {'='}, ACT(ASCIRC, S_SELF)}, - -1 + {-1} }; /* first index is char, second is state */ @@ -264,8 +263,12 @@ void continue; case C_ALPH: for (j = 0; j <= 256; j++) - if ('a' <= j && j <= 'z' || 'A' <= j && j <= 'Z' +#ifdef S390 + if( isalpha( j ) || (j == '_') ) +#else + if (('a' <= j && j <= 'z') || ('A' <= j && j <= 'Z') || j == '_') +#endif bigfsm[j][fp->state] = nstate; continue; case C_NUM: @@ -321,7 +324,6 @@ int int runelen; Source *s = cursource; int nmac = 0; - extern char outbuf[]; tp = trp->lp; ip = s->inp; |