align.h
arith.c
arith.h
-asm.c
assert.h
atw.h
blocks.c
for (;;) {
ch = GetChar();
- if (vch = val_in_base(ch, 16), vch == -1)
+ if (vch = hex_val(ch), vch == -1)
break;
hex = hex * 16 + vch;
}
int
-val_in_base(ch, base)
+hex_val(ch)
register int ch;
{
- switch (base) {
- case 8:
- return (is_dig(ch) && ch < '9') ? ch - '0' : -1;
- case 10:
- return is_dig(ch) ? ch - '0' : -1;
- case 16:
- return is_dig(ch) ? ch - '0'
+ return is_dig(ch) ? ch - '0'
: is_hex(ch) ? (ch - 'a' + 10) & 017
: -1;
- default:
- fatal("(val_in_base) illegal base value %d", base);
- /* NOTREACHED */
- }
}
ubound = max_arith / (base / 2);
while (is_hex(*cp)) {
- dig = is_dig(*cp) ? *cp - '0'
- : (( *cp >= 'A' && *cp <= 'F' ? *cp - 'A'
- : *cp - 'a')
- + 10) ;
+ dig = hex_val(*cp);
if (dig >= base) {
malformed++; /* ignore */
}
#endif NOPP
extern int EoiForNewline; /* "LLlex.c" */
extern int AccFileSpecifier; /* "LLlex.c" */
-extern int SkipEscNewline; /* "LLlex.c" */
extern int File_Inserted; /* "LLlex.c" */
extern int NoUnstack; /* buffer.c */
{
if (tp == otp)
return 1;
- if (!tp || !otp)
- return 0;
-
- if (tp->tp_fund != otp->tp_fund)
- return 0;
- if (tp->tp_unsigned != otp->tp_unsigned)
- return 0;
- if (tp->tp_align != otp->tp_align)
+ if (!tp
+ || !otp
+ || (tp->tp_fund != otp->tp_fund)
+ || (tp->tp_unsigned != otp->tp_unsigned)
+ || (tp->tp_align != otp->tp_align))
return 0;
if (tp->tp_fund != ARRAY /* && tp->tp_fund != STRUCT */ ) { /* UNION ??? */
if (tp->tp_size != otp->tp_size)
#define is_oct(ch) (isoct[ch])
#define is_dig(ch) (isdig[ch])
#define is_hex(ch) (ishex[ch])
-#define is_suf(ch) (issuf[ch])
#define is_wsp(ch) (iswsp[ch])
extern char tkclass[];
-extern char inidf[], isoct[], isdig[], ishex[], issuf[], iswsp[];
+extern char inidf[], isoct[], isdig[], ishex[], iswsp[];
}
|
/* This qualifier applies to the top type.
- E.g. const float * is a pointer to const float.
+ E.g. volatile float * is a pointer to volatile float.
*/
- [ VOLATILE | CONST ]
- { if (DOT == VOLATILE) {
- if (ds->ds_typequal & TQ_VOLATILE)
- error("repeated type qualifier");
- ds->ds_typequal |= TQ_VOLATILE;
- }
- if (DOT == CONST) {
- if (ds->ds_typequal & TQ_CONST)
- error("repeated type qualifier");
- ds->ds_typequal |= TQ_CONST;
- }
+ VOLATILE
+ { if (ds->ds_typequal & TQ_VOLATILE)
+ error("repeated type qualifier");
+ ds->ds_typequal |= TQ_VOLATILE;
+ }
+|
+ /* This qualifier applies to the top type.
+ E.g. volatile float * is a pointer to volatile float.
+ */
+ CONST
+ {
+ if (ds->ds_typequal & TQ_CONST)
+ error("repeated type qualifier");
+ ds->ds_typequal |= TQ_CONST;
}
;
/* 3.5.4 */
type_qualifier_list(int *qual;)
:
-[
- [ VOLATILE | CONST ]
- { *qual = (DOT == VOLATILE) ? TQ_VOLATILE : TQ_CONST; }
+ { *qual = 0; }
[
- [ VOLATILE | CONST ]
- { if (DOT == VOLATILE) {
- if (*qual & TQ_VOLATILE)
- error("repeated type qualifier");
- *qual |= TQ_VOLATILE;
- }
- if (DOT == CONST) {
- if (*qual & TQ_CONST)
- error("repeated type qualifier");
- *qual |= TQ_CONST;
- }
+ VOLATILE
+ { if (*qual & TQ_VOLATILE)
+ error("repeated type qualifier");
+ *qual |= TQ_VOLATILE;
+ }
+ |
+ CONST
+ { if (*qual & TQ_CONST)
+ error("repeated type qualifier");
+ *qual |= TQ_CONST;
}
-
]*
-|
- empty
- { *qual = 0; }
-]
;
empty:
ReplaceMacros = 1;
UnknownIdIsZero = tmp;
if (tok != IDENTIFIER) {
- if (skiponerr && tok != EOI) SkipToNewLine(0);
+ if (skiponerr && tok != EOI) SkipToNewLine();
return (struct idf *)0;
}
return tk.tk_idf;
*/
if (GetToken(&tk) != INTEGER) {
error("bad #line syntax");
- SkipToNewLine(0);
+ SkipToNewLine();
}
else
do_line((unsigned int)tk.tk_ival);
default:
/* invalid word seen after the '#' */
lexerror("%s: unknown control", tk.tk_idf->id_text);
- SkipToNewLine(0);
+ SkipToNewLine();
}
break;
case INTEGER: /* # <integer> [<filespecifier>]? */
break;
default: /* invalid token following '#' */
lexerror("illegal # line");
- SkipToNewLine(0);
+ SkipToNewLine();
}
EoiForNewline = 0;
}
return;
}
UnGetChar();
- SkipToNewLine(0);
+ SkipToNewLine();
continue;
}
ReplaceMacros = 0;
toknum = GetToken(&tk);
ReplaceMacros = 1;
if (toknum != IDENTIFIER) {
- SkipToNewLine(0);
+ SkipToNewLine();
continue;
}
/* an IDENTIFIER: look for #if, #ifdef and #ifndef
*/
switch(tk.tk_idf->id_resmac) {
default:
- SkipToNewLine(0);
+ SkipToNewLine();
break;
case K_IF:
case K_IFDEF:
case K_IFNDEF:
push_if();
- SkipToNewLine(0);
+ SkipToNewLine();
break;
case K_ELIF:
if (ifstack[nestlevel])
return;
}
}
- else SkipToNewLine(0); /* otherwise done in ifexpr() */
+ else SkipToNewLine(); /* otherwise done in ifexpr() */
break;
case K_ELSE:
if (ifstack[nestlevel])
lexerror("#else after #else");
++(ifstack[nestlevel]);
if (!to_endif && nestlevel == skiplevel) {
- if (SkipToNewLine(1))
+ if (SkipToNewLine())
strict("garbage following #else");
NoUnstack--;
return;
}
- else SkipToNewLine(0);
+ else SkipToNewLine();
break;
case K_ENDIF:
ASSERT(nestlevel > nestlow);
if (nestlevel == skiplevel) {
- if (SkipToNewLine(1))
+ if (SkipToNewLine())
strict("garbage following #endif");
nestlevel--;
NoUnstack--;
return;
}
- else SkipToNewLine(0);
+ else SkipToNewLine();
nestlevel--;
break;
}
filenm = (char *)0;
}
AccFileSpecifier = 0;
- SkipToNewLine(0);
+ SkipToNewLine();
inctable[0] = WorkingDir;
if (filenm) {
if (!InsertFile(filenm, &inctable[tok==FILESPECIFIER],&result)){
ch = GetChar();
if (ch == '(') {
if ((nformals = getparams(formals, parbuf)) == -1) {
- SkipToNewLine(0);
+ SkipToNewLine();
return; /* an error occurred */
}
ch = GetChar();
{
if (nestlevel <= nestlow) {
lexerror("#elif without corresponding #if");
- SkipToNewLine(0);
+ SkipToNewLine();
}
else { /* restart at this level as if a #if is detected. */
if (ifstack[nestlevel]) {
lexerror("#elif after #else");
- SkipToNewLine(0);
+ SkipToNewLine();
}
nestlevel--;
push_if();
do_else()
{
- if (SkipToNewLine(1))
+ if (SkipToNewLine())
strict("garbage following #else");
if (nestlevel <= nestlow)
lexerror("#else without corresponding #if");
do_endif()
{
- if (SkipToNewLine(1))
+ if (SkipToNewLine())
strict("garbage following #endif");
if (nestlevel <= nestlow) {
lexerror("#endif without corresponding #if");
if (how ^ (id && id->id_macro != 0))
skip_block(0);
else if (id)
- SkipToNewLine(0);
+ SkipToNewLine();
}
do_undef()
id->id_macro = (struct macro *) 0;
}
} /* else: don't complain */
- SkipToNewLine(0);
+ SkipToNewLine();
}
else
lexerror("illegal #undef construction");
tok = GetToken(&tk);
if (tok != IDENTIFIER) {
- if (skiponerr && tok != EOI) SkipToNewLine(0);
+ if (skiponerr && tok != EOI) SkipToNewLine();
return (struct idf *)0;
}
return tk.tk_idf;
if (strcmp(tk.tk_idf->id_text, "line")
&& strcmp(tk.tk_idf->id_text, "pragma")) {
error("illegal # line");
- SkipToNewLine(0);
+ SkipToNewLine();
return;
}
else if ( !strcmp(tk.tk_idf->id_text, "pragma")) {
}
if (tok != INTEGER) {
error("illegal # line");
- SkipToNewLine(0);
+ SkipToNewLine();
return;
}
do_line((unsigned int) tk.tk_ival);
LineNumber = l - 1; /* the number of the next input line */
if (GetToken(&tk) == STRING) /* is there a filespecifier? */
FileName = tk.tk_bts;
- SkipToNewLine(0);
+ SkipToNewLine();
}
}
/* throw out the characters of the already prepared string */
s = Malloc((unsigned) (length));
- clear(s, length);
+ clear(s, (unsigned)length);
i = length <= ex->SG_LEN ? length : ex->SG_LEN;
to = s; from = ex->SG_VALUE;
while(--i >= 0) {
default:
break;
}
- SkipToNewLine(0);
+ SkipToNewLine();
}
}
}
#endif NOPP
-SkipToNewLine(garbage)
- int garbage;
+SkipToNewLine()
{
register int ch;
- register int pstrict = 0;
+ register int garbage = 0;
while ((ch = GetChar()) != '\n') {
if (ch == '/') {
continue;
}
}
- if (garbage && !is_wsp(ch))
- pstrict = 1;
+ if (!is_wsp(ch))
+ garbage = 1;
}
++LineNumber;
- return pstrict;
+ return garbage;
}