* Dewarninged the lcc and q3asm source
* Removed traditional target platforms from the lcc build. This might break building lcc on Windows using nmake. Submit patches or be quiet :p * Default target for lcc is now bytecode, so -Wf-target=bytecode is no longer needed on the lcc command line
This commit is contained in:
parent
6797dcc705
commit
c07dc8dbee
38 changed files with 390 additions and 390 deletions
|
@ -100,7 +100,7 @@ control(Tokenrow *trp)
|
|||
error(ERROR, "Unidentifiable control line");
|
||||
return; /* else empty line */
|
||||
}
|
||||
if ((np = lookup(tp, 0))==NULL || (np->flag&ISKW)==0 && !skipping) {
|
||||
if ((np = lookup(tp, 0))==NULL || ((np->flag&ISKW)==0 && !skipping)) {
|
||||
error(WARNING, "Unknown preprocessor control %t", tp);
|
||||
return;
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ control(Tokenrow *trp)
|
|||
tp = trp->bp+2;
|
||||
kline:
|
||||
if (tp+1>=trp->lp || tp->type!=NUMBER || tp+3<trp->lp
|
||||
|| (tp+3==trp->lp && ((tp+1)->type!=STRING)||*(tp+1)->t=='L')){
|
||||
|| ((tp+3==trp->lp && ((tp+1)->type!=STRING))||*(tp+1)->t=='L')){
|
||||
error(ERROR, "Syntax error in #line");
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#define EPR fprintf(stderr,
|
||||
#define ERR(str, chr) if(opterr){EPR "%s%c\n", str, chr);}
|
||||
int opterr = 1;
|
||||
int optind = 1;
|
||||
int optopt;
|
||||
char *optarg;
|
||||
char *strchr();
|
||||
|
||||
int
|
||||
getopt (int argc, char *const argv[], const char *opts)
|
||||
|
@ -14,7 +14,7 @@ getopt (int argc, char *const argv[], const char *opts)
|
|||
int c;
|
||||
char *cp;
|
||||
|
||||
if (sp == 1)
|
||||
if (sp == 1) {
|
||||
if (optind >= argc ||
|
||||
argv[optind][0] != '-' || argv[optind][1] == '\0')
|
||||
return -1;
|
||||
|
@ -22,6 +22,7 @@ getopt (int argc, char *const argv[], const char *opts)
|
|||
optind++;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
optopt = c = argv[optind][sp];
|
||||
if (c == ':' || (cp=strchr(opts, c)) == 0) {
|
||||
ERR (": illegal option -- ", c);
|
||||
|
|
|
@ -59,7 +59,7 @@ doinclude(Tokenrow *trp)
|
|||
if ((fd = open(iname, 0)) >= 0)
|
||||
break;
|
||||
}
|
||||
if ( Mflag>1 || !angled&&Mflag==1 ) {
|
||||
if ( Mflag>1 || (!angled&&Mflag==1) ) {
|
||||
write(1,objname,strlen(objname));
|
||||
write(1,iname,strlen(iname));
|
||||
write(1,"\n",1);
|
||||
|
|
249
lcc/cpp/lex.c
249
lcc/cpp/lex.c
|
@ -52,183 +52,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 / then *, 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 */
|
||||
|
@ -254,7 +254,7 @@ expandlex(void)
|
|||
continue;
|
||||
case C_ALPH:
|
||||
for (j=0; j<=256; j++)
|
||||
if ('a'<=j&&j<='z' || 'A'<=j&&j<='Z'
|
||||
if (('a'<=j&&j<='z') || ('A'<=j&&j<='Z')
|
||||
|| j=='_')
|
||||
bigfsm[j][fp->state] = nstate;
|
||||
continue;
|
||||
|
@ -305,7 +305,6 @@ gettokens(Tokenrow *trp, int reset)
|
|||
int runelen;
|
||||
Source *s = cursource;
|
||||
int nmac = 0;
|
||||
extern char outbuf[];
|
||||
|
||||
tp = trp->lp;
|
||||
ip = s->inp;
|
||||
|
|
|
@ -71,7 +71,7 @@ dodefine(Tokenrow *trp)
|
|||
if (np->flag&ISDEFINED) {
|
||||
if (comparetokens(def, np->vp)
|
||||
|| (np->ap==NULL) != (args==NULL)
|
||||
|| np->ap && comparetokens(args, np->ap))
|
||||
|| (np->ap && comparetokens(args, np->ap)))
|
||||
error(ERROR, "Macro redefinition of %t", trp->bp+2);
|
||||
}
|
||||
if (args) {
|
||||
|
@ -141,7 +141,7 @@ expandrow(Tokenrow *trp, char *flag)
|
|||
|| quicklook(tp->t[0], tp->len>1?tp->t[1]:0)==0
|
||||
|| (np = lookup(tp, 0))==NULL
|
||||
|| (np->flag&(ISDEFINED|ISMAC))==0
|
||||
|| tp->hideset && checkhideset(tp->hideset, np)) {
|
||||
|| (tp->hideset && checkhideset(tp->hideset, np))) {
|
||||
tp++;
|
||||
continue;
|
||||
}
|
||||
|
@ -300,7 +300,7 @@ gatherargs(Tokenrow *trp, Tokenrow **atr, int *narg)
|
|||
parens--;
|
||||
if (lp->type==DSHARP)
|
||||
lp->type = DSHARP1; /* ## not special in arg */
|
||||
if (lp->type==COMMA && parens==0 || parens<0 && (lp-1)->type!=LP) {
|
||||
if ((lp->type==COMMA && parens==0) || (parens<0 && (lp-1)->type!=LP)) {
|
||||
if (*narg>=NARG-1)
|
||||
error(FATAL, "Sorry, too many macro arguments");
|
||||
ttr.bp = ttr.tp = bp;
|
||||
|
@ -339,7 +339,7 @@ substargs(Nlist *np, Tokenrow *rtr, Tokenrow **atr)
|
|||
if (rtr->tp->type==NAME
|
||||
&& (argno = lookuparg(np, rtr->tp)) >= 0) {
|
||||
if ((rtr->tp+1)->type==DSHARP
|
||||
|| rtr->tp!=rtr->bp && (rtr->tp-1)->type==DSHARP)
|
||||
|| (rtr->tp!=rtr->bp && (rtr->tp-1)->type==DSHARP))
|
||||
insertrow(rtr, 1, atr[argno]);
|
||||
else {
|
||||
copytokenrow(&tatr, atr[argno]);
|
||||
|
|
|
@ -20,26 +20,26 @@ struct kwtab {
|
|||
int val;
|
||||
int flag;
|
||||
} kwtab[] = {
|
||||
"if", KIF, ISKW,
|
||||
"ifdef", KIFDEF, ISKW,
|
||||
"ifndef", KIFNDEF, ISKW,
|
||||
"elif", KELIF, ISKW,
|
||||
"else", KELSE, ISKW,
|
||||
"endif", KENDIF, ISKW,
|
||||
"include", KINCLUDE, ISKW,
|
||||
"define", KDEFINE, ISKW,
|
||||
"undef", KUNDEF, ISKW,
|
||||
"line", KLINE, ISKW,
|
||||
"error", KERROR, ISKW,
|
||||
"pragma", KPRAGMA, ISKW,
|
||||
"eval", KEVAL, ISKW,
|
||||
"defined", KDEFINED, ISDEFINED+ISUNCHANGE,
|
||||
"__LINE__", KLINENO, ISMAC+ISUNCHANGE,
|
||||
"__FILE__", KFILE, ISMAC+ISUNCHANGE,
|
||||
"__DATE__", KDATE, ISMAC+ISUNCHANGE,
|
||||
"__TIME__", KTIME, ISMAC+ISUNCHANGE,
|
||||
"__STDC__", KSTDC, ISUNCHANGE,
|
||||
NULL
|
||||
{"if", KIF, ISKW},
|
||||
{"ifdef", KIFDEF, ISKW},
|
||||
{"ifndef", KIFNDEF, ISKW},
|
||||
{"elif", KELIF, ISKW},
|
||||
{"else", KELSE, ISKW},
|
||||
{"endif", KENDIF, ISKW},
|
||||
{"include", KINCLUDE, ISKW},
|
||||
{"define", KDEFINE, ISKW},
|
||||
{"undef", KUNDEF, ISKW},
|
||||
{"line", KLINE, ISKW},
|
||||
{"error", KERROR, ISKW},
|
||||
{"pragma", KPRAGMA, ISKW},
|
||||
{"eval", KEVAL, ISKW},
|
||||
{"defined", KDEFINED, ISDEFINED+ISUNCHANGE},
|
||||
{"__LINE__", KLINENO, ISMAC+ISUNCHANGE},
|
||||
{"__FILE__", KFILE, ISMAC+ISUNCHANGE},
|
||||
{"__DATE__", KDATE, ISMAC+ISUNCHANGE},
|
||||
{"__TIME__", KTIME, ISMAC+ISUNCHANGE},
|
||||
{"__STDC__", KSTDC, ISUNCHANGE},
|
||||
{NULL}
|
||||
};
|
||||
|
||||
unsigned long namebit[077+1];
|
||||
|
|
|
@ -154,14 +154,14 @@ makespace(Tokenrow *trp)
|
|||
return;
|
||||
if (tp->wslen) {
|
||||
if (tp->flag&XPWS
|
||||
&& (wstab[tp->type] || trp->tp>trp->bp && wstab[(tp-1)->type])) {
|
||||
&& (wstab[tp->type] || (trp->tp>trp->bp && wstab[(tp-1)->type]))) {
|
||||
tp->wslen = 0;
|
||||
return;
|
||||
}
|
||||
tp->t[-1] = ' ';
|
||||
return;
|
||||
}
|
||||
if (wstab[tp->type] || trp->tp>trp->bp && wstab[(tp-1)->type])
|
||||
if (wstab[tp->type] || (trp->tp>trp->bp && wstab[(tp-1)->type]))
|
||||
return;
|
||||
tt = newstring(tp->t, tp->len, 1);
|
||||
*tt++ = ' ';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue