mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-09-29 09:56:26 +00:00
insight'ed cpp. Nothing found that should be of interest.
This commit is contained in:
parent
619c3191d1
commit
79ab0e7f2b
@ -1,4 +1,4 @@
|
|||||||
#ifdef __ORCAC__
|
#if defined(__ORCAC__) && defined(DO_SEGMENTS)
|
||||||
segment "cpp_3_____";
|
segment "cpp_3_____";
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -21,7 +21,7 @@ int ifdepth;
|
|||||||
int ifsatisfied[NIF];
|
int ifsatisfied[NIF];
|
||||||
int skipping;
|
int skipping;
|
||||||
|
|
||||||
char rcsid[] = "$Revision: 1.2 $ $Date: 1997/12/02 08:05:52 $";
|
char rcsid[] = "$Revision: 1.3 $ $Date: 1997/12/08 03:40:11 $";
|
||||||
|
|
||||||
#if defined(__GNO__) && defined(__STACK_CHECK__)
|
#if defined(__GNO__) && defined(__STACK_CHECK__)
|
||||||
#include <err.h>
|
#include <err.h>
|
||||||
@ -115,7 +115,7 @@ control(Tokenrow *trp)
|
|||||||
error(ERROR, "Unidentifiable control line");
|
error(ERROR, "Unidentifiable control line");
|
||||||
return; /* else empty 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);
|
error(WARNING, "Unknown preprocessor control %t", tp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -230,7 +230,8 @@ control(Tokenrow *trp)
|
|||||||
tp = trp->bp+2;
|
tp = trp->bp+2;
|
||||||
kline:
|
kline:
|
||||||
if (tp+1>=trp->lp || tp->type!=NUMBER || tp+3<trp->lp
|
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");
|
error(ERROR, "Syntax error in #line");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: cpp.h,v 1.2 1997/12/02 08:05:52 gdr Exp $ */
|
/* $Id: cpp.h,v 1.3 1997/12/08 03:40:11 gdr Exp $ */
|
||||||
#define INS 32768 /* input buffer */
|
#define INS 32768 /* input buffer */
|
||||||
#define OBS 4096 /* outbut buffer */
|
#define OBS 4096 /* outbut buffer */
|
||||||
#define NARG 32 /* Max number arguments to a macro */
|
#define NARG 32 /* Max number arguments to a macro */
|
||||||
@ -139,6 +139,7 @@ int newhideset(int, Nlist *);
|
|||||||
int unionhideset(int, int);
|
int unionhideset(int, int);
|
||||||
void iniths(void);
|
void iniths(void);
|
||||||
void setobjname(char *);
|
void setobjname(char *);
|
||||||
|
void setup_kwtab(void);
|
||||||
#define rowlen(tokrow) ((tokrow)->lp - (tokrow)->bp)
|
#define rowlen(tokrow) ((tokrow)->lp - (tokrow)->bp)
|
||||||
|
|
||||||
extern char *outp;
|
extern char *outp;
|
||||||
@ -156,15 +157,6 @@ extern Nlist *kwdefined;
|
|||||||
extern Includelist includelist[NINCLUDE];
|
extern Includelist includelist[NINCLUDE];
|
||||||
extern char wd[];
|
extern char wd[];
|
||||||
|
|
||||||
#ifndef __ORCAC__ /* make sure we get our own decls */
|
|
||||||
extern int creat(char *, int);
|
|
||||||
extern int open(char *, int);
|
|
||||||
extern int close(int);
|
|
||||||
extern int dup2(int, int);
|
|
||||||
extern int write(int, char *, size_t);
|
|
||||||
extern int read(int, char *, size_t);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __ORCAC__
|
#ifdef __ORCAC__
|
||||||
# define STATIC static
|
# define STATIC static
|
||||||
# ifdef NDEBUG
|
# ifdef NDEBUG
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#ifdef __ORCAC__
|
#if defined(__ORCAC__) && defined(DO_SEGMENTS)
|
||||||
segment "cpp_3_____";
|
segment "cpp_3_____";
|
||||||
#endif
|
#endif
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -148,7 +148,7 @@ eval(Tokenrow *trp, int kw)
|
|||||||
case NOT:
|
case NOT:
|
||||||
if (rand)
|
if (rand)
|
||||||
goto syntax;
|
goto syntax;
|
||||||
*op++ = tp->type;
|
*op++ = (enum toktype) tp->type;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* unary-binary */
|
/* unary-binary */
|
||||||
@ -173,7 +173,7 @@ eval(Tokenrow *trp, int kw)
|
|||||||
goto syntax;
|
goto syntax;
|
||||||
if (evalop(priority[tp->type])!=0)
|
if (evalop(priority[tp->type])!=0)
|
||||||
return 0;
|
return 0;
|
||||||
*op++ = tp->type;
|
*op++ = (enum toktype) tp->type;
|
||||||
rand = 0;
|
rand = 0;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#ifdef __ORCAC__
|
#if defined(__ORCAC__) && defined(DO_SEGMENTS)
|
||||||
segment "cpp_3_____";
|
segment "cpp_3_____";
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#ifdef __ORCAC__
|
#if defined(__ORCAC__) && defined(DO_SEGMENTS)
|
||||||
segment "cpp_3_____";
|
segment "cpp_3_____";
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#ifdef __ORCAC__
|
#if defined(__ORCAC__) && defined(DO_SEGMENTS)
|
||||||
segment "cpp_3_____";
|
segment "cpp_3_____";
|
||||||
#endif
|
#endif
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -65,7 +65,7 @@ doinclude(Tokenrow *trp)
|
|||||||
if ((fd = open(iname, 0)) >= 0)
|
if ((fd = open(iname, 0)) >= 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ( Mflag>1 || !angled&&Mflag==1 ) {
|
if ( Mflag>1 || ( !angled && Mflag==1 )) {
|
||||||
write(STDOUT_FILENO,objname,strlen(objname));
|
write(STDOUT_FILENO,objname,strlen(objname));
|
||||||
write(STDOUT_FILENO,iname,strlen(iname));
|
write(STDOUT_FILENO,iname,strlen(iname));
|
||||||
write(STDOUT_FILENO,"\n",1);
|
write(STDOUT_FILENO,"\n",1);
|
||||||
@ -94,8 +94,18 @@ void
|
|||||||
genline(void)
|
genline(void)
|
||||||
{
|
{
|
||||||
static Token ta = { UNCLASS };
|
static Token ta = { UNCLASS };
|
||||||
static Tokenrow tr = { &ta, &ta, &ta+1, 1 };
|
|
||||||
uchar *p;
|
uchar *p;
|
||||||
|
#ifndef __INSIGHT__
|
||||||
|
static Tokenrow tr = { &ta, &ta, &ta+1, 1 };
|
||||||
|
#else
|
||||||
|
static Tokenrow tr;
|
||||||
|
static int been_here = 0;
|
||||||
|
|
||||||
|
if (! been_here) {
|
||||||
|
tr = { &ta, &ta, &ta+1, 1 };
|
||||||
|
been_here = 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
ta.t = p = (uchar*)outp;
|
ta.t = p = (uchar*)outp;
|
||||||
strcpy((char*)p, "#line ");
|
strcpy((char*)p, "#line ");
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#ifdef __ORCAC__
|
#if defined(__ORCAC__) && defined(DO_SEGMENTS)
|
||||||
segment "cpp_1_____";
|
segment "cpp_1_____";
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -56,183 +56,183 @@ struct fsm {
|
|||||||
|
|
||||||
/*const*/ struct fsm fsm[] = {
|
/*const*/ struct fsm fsm[] = {
|
||||||
/* start state */
|
/* start state */
|
||||||
START, { C_XX }, ACT(UNCLASS,S_SELF),
|
{ START, { C_XX }, ACT(UNCLASS,S_SELF) },
|
||||||
START, { ' ', '\t', '\v' }, WS1,
|
{ START, { ' ', '\t', '\v' }, WS1 },
|
||||||
START, { C_NUM }, NUM1,
|
{ START, { C_NUM }, NUM1 },
|
||||||
START, { '.' }, NUM3,
|
{ START, { '.' }, NUM3 },
|
||||||
START, { C_ALPH }, ID1,
|
{ START, { C_ALPH }, ID1 },
|
||||||
START, { 'L' }, ST1,
|
{ START, { 'L' }, ST1 },
|
||||||
START, { '"' }, ST2,
|
{ START, { '"' }, ST2 },
|
||||||
START, { '\'' }, CC1,
|
{ START, { '\'' }, CC1 },
|
||||||
START, { '/' }, COM1,
|
{ START, { '/' }, COM1 },
|
||||||
START, { EOFC }, S_EOF,
|
{ START, { EOFC }, S_EOF },
|
||||||
START, { '\n' }, S_NL,
|
{ START, { '\n' }, S_NL },
|
||||||
START, { '-' }, MINUS1,
|
{ START, { '-' }, MINUS1 },
|
||||||
START, { '+' }, PLUS1,
|
{ START, { '+' }, PLUS1 },
|
||||||
START, { '<' }, LT1,
|
{ START, { '<' }, LT1 },
|
||||||
START, { '>' }, GT1,
|
{ START, { '>' }, GT1 },
|
||||||
START, { '=' }, ASG1,
|
{ START, { '=' }, ASG1 },
|
||||||
START, { '!' }, NOT1,
|
{ START, { '!' }, NOT1 },
|
||||||
START, { '&' }, AND1,
|
{ START, { '&' }, AND1 },
|
||||||
START, { '|' }, OR1,
|
{ START, { '|' }, OR1 },
|
||||||
START, { '#' }, SHARP1,
|
{ START, { '#' }, SHARP1 },
|
||||||
START, { '%' }, PCT1,
|
{ START, { '%' }, PCT1 },
|
||||||
START, { '[' }, ACT(SBRA,S_SELF),
|
{ START, { '[' }, ACT(SBRA,S_SELF) },
|
||||||
START, { ']' }, ACT(SKET,S_SELF),
|
{ START, { ']' }, ACT(SKET,S_SELF) },
|
||||||
START, { '(' }, ACT(LP,S_SELF),
|
{ START, { '(' }, ACT(LP,S_SELF) },
|
||||||
START, { ')' }, ACT(RP,S_SELF),
|
{ START, { ')' }, ACT(RP,S_SELF) },
|
||||||
START, { '*' }, STAR1,
|
{ START, { '*' }, STAR1 },
|
||||||
START, { ',' }, ACT(COMMA,S_SELF),
|
{ START, { ',' }, ACT(COMMA,S_SELF) },
|
||||||
START, { '?' }, ACT(QUEST,S_SELF),
|
{ START, { '?' }, ACT(QUEST,S_SELF) },
|
||||||
START, { ':' }, ACT(COLON,S_SELF),
|
{ START, { ':' }, ACT(COLON,S_SELF) },
|
||||||
START, { ';' }, ACT(SEMIC,S_SELF),
|
{ START, { ';' }, ACT(SEMIC,S_SELF) },
|
||||||
START, { '{' }, ACT(CBRA,S_SELF),
|
{ START, { '{' }, ACT(CBRA,S_SELF) },
|
||||||
START, { '}' }, ACT(CKET,S_SELF),
|
{ START, { '}' }, ACT(CKET,S_SELF) },
|
||||||
START, { '~' }, ACT(TILDE,S_SELF),
|
{ START, { '~' }, ACT(TILDE,S_SELF) },
|
||||||
START, { '^' }, CIRC1,
|
{ START, { '^' }, CIRC1 },
|
||||||
|
|
||||||
/* saw a digit */
|
/* saw a digit */
|
||||||
NUM1, { C_XX }, ACT(NUMBER,S_SELFB),
|
{ NUM1, { C_XX }, ACT(NUMBER,S_SELFB) },
|
||||||
NUM1, { C_NUM, C_ALPH, '.' }, NUM1,
|
{ NUM1, { C_NUM, C_ALPH, '.' }, NUM1 },
|
||||||
NUM1, { 'E', 'e' }, NUM2,
|
{ NUM1, { 'E', 'e' }, NUM2 },
|
||||||
NUM1, { '_' }, ACT(NUMBER,S_SELFB),
|
{ NUM1, { '_' }, ACT(NUMBER,S_SELFB) },
|
||||||
|
|
||||||
/* saw possible start of exponent, digits-e */
|
/* saw possible start of exponent, digits-e */
|
||||||
NUM2, { C_XX }, ACT(NUMBER,S_SELFB),
|
{ NUM2, { C_XX }, ACT(NUMBER,S_SELFB) },
|
||||||
NUM2, { '+', '-' }, NUM1,
|
{ NUM2, { '+', '-' }, NUM1 },
|
||||||
NUM2, { C_NUM, C_ALPH }, NUM1,
|
{ NUM2, { C_NUM, C_ALPH }, NUM1 },
|
||||||
NUM2, { '_' }, ACT(NUMBER,S_SELFB),
|
{ NUM2, { '_' }, ACT(NUMBER,S_SELFB) },
|
||||||
|
|
||||||
/* saw a '.', which could be a number or an operator */
|
/* saw a '.', which could be a number or an operator */
|
||||||
NUM3, { C_XX }, ACT(DOT,S_SELFB),
|
{ NUM3, { C_XX }, ACT(DOT,S_SELFB) },
|
||||||
NUM3, { '.' }, DOTS1,
|
{ NUM3, { '.' }, DOTS1 },
|
||||||
NUM3, { C_NUM }, NUM1,
|
{ NUM3, { C_NUM }, NUM1 },
|
||||||
|
|
||||||
DOTS1, { C_XX }, ACT(UNCLASS, S_SELFB),
|
{ DOTS1, { C_XX }, ACT(UNCLASS, S_SELFB) },
|
||||||
DOTS1, { C_NUM }, NUM1,
|
{ DOTS1, { C_NUM }, NUM1 },
|
||||||
DOTS1, { '.' }, ACT(ELLIPS, S_SELF),
|
{ DOTS1, { '.' }, ACT(ELLIPS, S_SELF) },
|
||||||
|
|
||||||
/* saw a letter or _ */
|
/* saw a letter or _ */
|
||||||
ID1, { C_XX }, ACT(NAME,S_NAME),
|
{ ID1, { C_XX }, ACT(NAME,S_NAME) },
|
||||||
ID1, { C_ALPH, C_NUM }, ID1,
|
{ ID1, { C_ALPH, C_NUM }, ID1 },
|
||||||
|
|
||||||
/* saw L (start of wide string?) */
|
/* saw L (start of wide string?) */
|
||||||
ST1, { C_XX }, ACT(NAME,S_NAME),
|
{ ST1, { C_XX }, ACT(NAME,S_NAME) },
|
||||||
ST1, { C_ALPH, C_NUM }, ID1,
|
{ ST1, { C_ALPH, C_NUM }, ID1 },
|
||||||
ST1, { '"' }, ST2,
|
{ ST1, { '"' }, ST2 },
|
||||||
ST1, { '\'' }, CC1,
|
{ ST1, { '\'' }, CC1 },
|
||||||
|
|
||||||
/* saw " beginning string */
|
/* saw " beginning string */
|
||||||
ST2, { C_XX }, ST2,
|
{ ST2, { C_XX }, ST2 },
|
||||||
ST2, { '"' }, ACT(STRING, S_SELF),
|
{ ST2, { '"' }, ACT(STRING, S_SELF) },
|
||||||
ST2, { '\\' }, ST3,
|
{ ST2, { '\\' }, ST3 },
|
||||||
ST2, { '\n' }, S_STNL,
|
{ ST2, { '\n' }, S_STNL },
|
||||||
ST2, { EOFC }, S_EOFSTR,
|
{ ST2, { EOFC }, S_EOFSTR },
|
||||||
|
|
||||||
/* saw \ in string */
|
/* saw \ in string */
|
||||||
ST3, { C_XX }, ST2,
|
{ ST3, { C_XX }, ST2 },
|
||||||
ST3, { '\n' }, S_STNL,
|
{ ST3, { '\n' }, S_STNL },
|
||||||
ST3, { EOFC }, S_EOFSTR,
|
{ ST3, { EOFC }, S_EOFSTR },
|
||||||
|
|
||||||
/* saw ' beginning character const */
|
/* saw ' beginning character const */
|
||||||
CC1, { C_XX }, CC1,
|
{ CC1, { C_XX }, CC1 },
|
||||||
CC1, { '\'' }, ACT(CCON, S_SELF),
|
{ CC1, { '\'' }, ACT(CCON, S_SELF) },
|
||||||
CC1, { '\\' }, CC2,
|
{ CC1, { '\\' }, CC2 },
|
||||||
CC1, { '\n' }, S_STNL,
|
{ CC1, { '\n' }, S_STNL },
|
||||||
CC1, { EOFC }, S_EOFSTR,
|
{ CC1, { EOFC }, S_EOFSTR },
|
||||||
|
|
||||||
/* saw \ in ccon */
|
/* saw \ in ccon */
|
||||||
CC2, { C_XX }, CC1,
|
{ CC2, { C_XX }, CC1 },
|
||||||
CC2, { '\n' }, S_STNL,
|
{ CC2, { '\n' }, S_STNL },
|
||||||
CC2, { EOFC }, S_EOFSTR,
|
{ CC2, { EOFC }, S_EOFSTR },
|
||||||
|
|
||||||
/* saw /, perhaps start of comment */
|
/* saw /, perhaps start of comment */
|
||||||
COM1, { C_XX }, ACT(SLASH, S_SELFB),
|
{ COM1, { C_XX }, ACT(SLASH, S_SELFB) },
|
||||||
COM1, { '=' }, ACT(ASSLASH, S_SELF),
|
{ COM1, { '=' }, ACT(ASSLASH, S_SELF) },
|
||||||
COM1, { '*' }, COM2,
|
{ COM1, { '*' }, COM2 },
|
||||||
COM1, { '/' }, COM4,
|
{ COM1, { '/' }, COM4 },
|
||||||
|
|
||||||
/* saw "/*", start of comment */
|
/* saw "/*", start of comment */
|
||||||
COM2, { C_XX }, COM2,
|
{ COM2, { C_XX }, COM2 },
|
||||||
COM2, { '\n' }, S_COMNL,
|
{ COM2, { '\n' }, S_COMNL },
|
||||||
COM2, { '*' }, COM3,
|
{ COM2, { '*' }, COM3 },
|
||||||
COM2, { EOFC }, S_EOFCOM,
|
{ COM2, { EOFC }, S_EOFCOM },
|
||||||
|
|
||||||
/* saw the * possibly ending a comment */
|
/* saw the * possibly ending a comment */
|
||||||
COM3, { C_XX }, COM2,
|
{ COM3, { C_XX }, COM2 },
|
||||||
COM3, { '\n' }, S_COMNL,
|
{ COM3, { '\n' }, S_COMNL },
|
||||||
COM3, { '*' }, COM3,
|
{ COM3, { '*' }, COM3 },
|
||||||
COM3, { '/' }, S_COMMENT,
|
{ COM3, { '/' }, S_COMMENT },
|
||||||
|
|
||||||
/* // comment */
|
/* // comment */
|
||||||
COM4, { C_XX }, COM4,
|
{ COM4, { C_XX }, COM4 },
|
||||||
COM4, { '\n' }, S_NL,
|
{ COM4, { '\n' }, S_NL },
|
||||||
COM4, { EOFC }, S_EOFCOM,
|
{ COM4, { EOFC }, S_EOFCOM },
|
||||||
|
|
||||||
/* saw white space, eat it up */
|
/* saw white space, eat it up */
|
||||||
WS1, { C_XX }, S_WS,
|
{ WS1, { C_XX }, S_WS },
|
||||||
WS1, { ' ', '\t', '\v' }, WS1,
|
{ WS1, { ' ', '\t', '\v' }, WS1 },
|
||||||
|
|
||||||
/* saw -, check --, -=, -> */
|
/* saw -, check --, -=, -> */
|
||||||
MINUS1, { C_XX }, ACT(MINUS, S_SELFB),
|
{ MINUS1, { C_XX }, ACT(MINUS, S_SELFB) },
|
||||||
MINUS1, { '-' }, ACT(MMINUS, S_SELF),
|
{ MINUS1, { '-' }, ACT(MMINUS, S_SELF) },
|
||||||
MINUS1, { '=' }, ACT(ASMINUS,S_SELF),
|
{ MINUS1, { '=' }, ACT(ASMINUS,S_SELF) },
|
||||||
MINUS1, { '>' }, ACT(ARROW,S_SELF),
|
{ MINUS1, { '>' }, ACT(ARROW,S_SELF) },
|
||||||
|
|
||||||
/* saw +, check ++, += */
|
/* saw +, check ++, += */
|
||||||
PLUS1, { C_XX }, ACT(PLUS, S_SELFB),
|
{ PLUS1, { C_XX }, ACT(PLUS, S_SELFB) },
|
||||||
PLUS1, { '+' }, ACT(PPLUS, S_SELF),
|
{ PLUS1, { '+' }, ACT(PPLUS, S_SELF) },
|
||||||
PLUS1, { '=' }, ACT(ASPLUS, S_SELF),
|
{ PLUS1, { '=' }, ACT(ASPLUS, S_SELF) },
|
||||||
|
|
||||||
/* saw <, check <<, <<=, <= */
|
/* saw <, check <<, <<=, <= */
|
||||||
LT1, { C_XX }, ACT(LT, S_SELFB),
|
{ LT1, { C_XX }, ACT(LT, S_SELFB) },
|
||||||
LT1, { '<' }, LT2,
|
{ LT1, { '<' }, LT2 },
|
||||||
LT1, { '=' }, ACT(LEQ, S_SELF),
|
{ LT1, { '=' }, ACT(LEQ, S_SELF) },
|
||||||
LT2, { C_XX }, ACT(LSH, S_SELFB),
|
{ LT2, { C_XX }, ACT(LSH, S_SELFB) },
|
||||||
LT2, { '=' }, ACT(ASLSH, S_SELF),
|
{ LT2, { '=' }, ACT(ASLSH, S_SELF) },
|
||||||
|
|
||||||
/* saw >, check >>, >>=, >= */
|
/* saw >, check >>, >>=, >= */
|
||||||
GT1, { C_XX }, ACT(GT, S_SELFB),
|
{ GT1, { C_XX }, ACT(GT, S_SELFB) },
|
||||||
GT1, { '>' }, GT2,
|
{ GT1, { '>' }, GT2 },
|
||||||
GT1, { '=' }, ACT(GEQ, S_SELF),
|
{ GT1, { '=' }, ACT(GEQ, S_SELF) },
|
||||||
GT2, { C_XX }, ACT(RSH, S_SELFB),
|
{ GT2, { C_XX }, ACT(RSH, S_SELFB) },
|
||||||
GT2, { '=' }, ACT(ASRSH, S_SELF),
|
{ GT2, { '=' }, ACT(ASRSH, S_SELF) },
|
||||||
|
|
||||||
/* = */
|
/* = */
|
||||||
ASG1, { C_XX }, ACT(ASGN, S_SELFB),
|
{ ASG1, { C_XX }, ACT(ASGN, S_SELFB) },
|
||||||
ASG1, { '=' }, ACT(EQ, S_SELF),
|
{ ASG1, { '=' }, ACT(EQ, S_SELF) },
|
||||||
|
|
||||||
/* ! */
|
/* ! */
|
||||||
NOT1, { C_XX }, ACT(NOT, S_SELFB),
|
{ NOT1, { C_XX }, ACT(NOT, S_SELFB) },
|
||||||
NOT1, { '=' }, ACT(NEQ, S_SELF),
|
{ NOT1, { '=' }, ACT(NEQ, S_SELF) },
|
||||||
|
|
||||||
/* & */
|
/* & */
|
||||||
AND1, { C_XX }, ACT(AND, S_SELFB),
|
{ AND1, { C_XX }, ACT(AND, S_SELFB) },
|
||||||
AND1, { '&' }, ACT(LAND, S_SELF),
|
{ AND1, { '&' }, ACT(LAND, S_SELF) },
|
||||||
AND1, { '=' }, ACT(ASAND, S_SELF),
|
{ AND1, { '=' }, ACT(ASAND, S_SELF) },
|
||||||
|
|
||||||
/* | */
|
/* | */
|
||||||
OR1, { C_XX }, ACT(OR, S_SELFB),
|
{ OR1, { C_XX }, ACT(OR, S_SELFB) },
|
||||||
OR1, { '|' }, ACT(LOR, S_SELF),
|
{ OR1, { '|' }, ACT(LOR, S_SELF) },
|
||||||
OR1, { '=' }, ACT(ASOR, S_SELF),
|
{ OR1, { '=' }, ACT(ASOR, S_SELF) },
|
||||||
|
|
||||||
/* # */
|
/* # */
|
||||||
SHARP1, { C_XX }, ACT(SHARP, S_SELFB),
|
{ SHARP1, { C_XX }, ACT(SHARP, S_SELFB) },
|
||||||
SHARP1, { '#' }, ACT(DSHARP, S_SELF),
|
{ SHARP1, { '#' }, ACT(DSHARP, S_SELF) },
|
||||||
|
|
||||||
/* % */
|
/* % */
|
||||||
PCT1, { C_XX }, ACT(PCT, S_SELFB),
|
{ PCT1, { C_XX }, ACT(PCT, S_SELFB) },
|
||||||
PCT1, { '=' }, ACT(ASPCT, S_SELF),
|
{ PCT1, { '=' }, ACT(ASPCT, S_SELF) },
|
||||||
|
|
||||||
/* * */
|
/* * */
|
||||||
STAR1, { C_XX }, ACT(STAR, S_SELFB),
|
{ STAR1, { C_XX }, ACT(STAR, S_SELFB) },
|
||||||
STAR1, { '=' }, ACT(ASSTAR, S_SELF),
|
{ STAR1, { '=' }, ACT(ASSTAR, S_SELF) },
|
||||||
|
|
||||||
/* ^ */
|
/* ^ */
|
||||||
CIRC1, { C_XX }, ACT(CIRC, S_SELFB),
|
{ CIRC1, { C_XX }, ACT(CIRC, S_SELFB) },
|
||||||
CIRC1, { '=' }, ACT(ASCIRC, S_SELF),
|
{ CIRC1, { '=' }, ACT(ASCIRC, S_SELF) },
|
||||||
|
|
||||||
-1
|
{ -1, { '\0', '\0', '\0', '\0' }, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
/* first index is char, second is state */
|
/* first index is char, second is state */
|
||||||
@ -257,10 +257,13 @@ expandlex(void)
|
|||||||
bigfsm[j][fp->state] = nstate;
|
bigfsm[j][fp->state] = nstate;
|
||||||
continue;
|
continue;
|
||||||
case C_ALPH:
|
case C_ALPH:
|
||||||
for (j=0; j<=256; j++)
|
for (j=0; j<=256; j++) {
|
||||||
if ('a'<=j&&j<='z' || 'A'<=j&&j<='Z'
|
if (('a'<=j && j<='z') ||
|
||||||
|| j=='_')
|
('A'<=j && j<='Z') || j=='_')
|
||||||
bigfsm[j][fp->state] = nstate;
|
{
|
||||||
|
bigfsm[j][fp->state] = nstate;
|
||||||
|
}
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
case C_NUM:
|
case C_NUM:
|
||||||
for (j='0'; j<='9'; j++)
|
for (j='0'; j<='9'; j++)
|
||||||
@ -309,7 +312,6 @@ gettokens(Tokenrow *trp, int reset)
|
|||||||
int runelen;
|
int runelen;
|
||||||
Source *s = cursource;
|
Source *s = cursource;
|
||||||
int nmac = 0;
|
int nmac = 0;
|
||||||
extern char outbuf[];
|
|
||||||
|
|
||||||
tp = trp->lp;
|
tp = trp->lp;
|
||||||
ip = s->inp;
|
ip = s->inp;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#ifdef __ORCAC__
|
#if defined(__ORCAC__) && defined(DO_SEGMENTS)
|
||||||
segment "cpp_2_____";
|
segment "cpp_2_____";
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -77,7 +77,7 @@ dodefine(Tokenrow *trp)
|
|||||||
if (np->flag&ISDEFINED) {
|
if (np->flag&ISDEFINED) {
|
||||||
if (comparetokens(def, np->vp)
|
if (comparetokens(def, np->vp)
|
||||||
|| (np->ap==NULL) != (args==NULL)
|
|| (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);
|
error(ERROR, "Macro redefinition of %t", trp->bp+2);
|
||||||
}
|
}
|
||||||
if (args) {
|
if (args) {
|
||||||
@ -147,7 +147,7 @@ expandrow(Tokenrow *trp, char *flag)
|
|||||||
|| quicklook(tp->t[0], tp->len>1?tp->t[1]:0)==0
|
|| quicklook(tp->t[0], tp->len>1?tp->t[1]:0)==0
|
||||||
|| (np = lookup(tp, 0))==NULL
|
|| (np = lookup(tp, 0))==NULL
|
||||||
|| (np->flag&(ISDEFINED|ISMAC))==0
|
|| (np->flag&(ISDEFINED|ISMAC))==0
|
||||||
|| tp->hideset && checkhideset(tp->hideset, np)) {
|
|| (tp->hideset && checkhideset(tp->hideset, np))) {
|
||||||
tp++;
|
tp++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -315,7 +315,8 @@ gatherargs(Tokenrow *trp, Tokenrow **atr, int *narg)
|
|||||||
parens--;
|
parens--;
|
||||||
if (lp->type==DSHARP)
|
if (lp->type==DSHARP)
|
||||||
lp->type = DSHARP1; /* ## not special in arg */
|
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)
|
if (*narg>=NARG-1)
|
||||||
error(FATAL, "Sorry, too many macro arguments");
|
error(FATAL, "Sorry, too many macro arguments");
|
||||||
ttr.bp = ttr.tp = bp;
|
ttr.bp = ttr.tp = bp;
|
||||||
@ -354,7 +355,7 @@ substargs(Nlist *np, Tokenrow *rtr, Tokenrow **atr)
|
|||||||
if (rtr->tp->type==NAME
|
if (rtr->tp->type==NAME
|
||||||
&& (argno = lookuparg(np, rtr->tp)) >= 0) {
|
&& (argno = lookuparg(np, rtr->tp)) >= 0) {
|
||||||
if ((rtr->tp+1)->type==DSHARP
|
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]);
|
insertrow(rtr, 1, atr[argno]);
|
||||||
else {
|
else {
|
||||||
copytokenrow(&tatr, atr[argno]);
|
copytokenrow(&tatr, atr[argno]);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#ifdef __ORCAC__
|
#if defined(__ORCAC__) && defined(DO_SEGMENTS)
|
||||||
segment "cpp_3_____";
|
segment "cpp_3_____";
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -23,26 +23,26 @@ struct kwtab {
|
|||||||
int val;
|
int val;
|
||||||
int flag;
|
int flag;
|
||||||
} kwtab[] = {
|
} kwtab[] = {
|
||||||
"if", KIF, ISKW,
|
{ "if", KIF, ISKW },
|
||||||
"ifdef", KIFDEF, ISKW,
|
{ "ifdef", KIFDEF, ISKW },
|
||||||
"ifndef", KIFNDEF, ISKW,
|
{ "ifndef", KIFNDEF, ISKW },
|
||||||
"elif", KELIF, ISKW,
|
{ "elif", KELIF, ISKW },
|
||||||
"else", KELSE, ISKW,
|
{ "else", KELSE, ISKW },
|
||||||
"endif", KENDIF, ISKW,
|
{ "endif", KENDIF, ISKW },
|
||||||
"include", KINCLUDE, ISKW,
|
{ "include", KINCLUDE, ISKW },
|
||||||
"define", KDEFINE, ISKW,
|
{ "define", KDEFINE, ISKW },
|
||||||
"undef", KUNDEF, ISKW,
|
{ "undef", KUNDEF, ISKW },
|
||||||
"line", KLINE, ISKW,
|
{ "line", KLINE, ISKW },
|
||||||
"error", KERROR, ISKW,
|
{ "error", KERROR, ISKW },
|
||||||
"pragma", KPRAGMA, ISKW,
|
{ "pragma", KPRAGMA, ISKW },
|
||||||
"eval", KEVAL, ISKW,
|
{ "eval", KEVAL, ISKW },
|
||||||
"defined", KDEFINED, ISDEFINED+ISUNCHANGE,
|
{ "defined", KDEFINED, ISDEFINED+ISUNCHANGE },
|
||||||
"__LINE__", KLINENO, ISMAC+ISUNCHANGE,
|
{ "__LINE__", KLINENO, ISMAC+ISUNCHANGE },
|
||||||
"__FILE__", KFILE, ISMAC+ISUNCHANGE,
|
{ "__FILE__", KFILE, ISMAC+ISUNCHANGE },
|
||||||
"__DATE__", KDATE, ISMAC+ISUNCHANGE,
|
{ "__DATE__", KDATE, ISMAC+ISUNCHANGE },
|
||||||
"__TIME__", KTIME, ISMAC+ISUNCHANGE,
|
{ "__TIME__", KTIME, ISMAC+ISUNCHANGE },
|
||||||
"__STDC__", KSTDC, ISUNCHANGE,
|
{ "__STDC__", KSTDC, ISUNCHANGE },
|
||||||
NULL
|
{ NULL, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
unsigned long namebit[077+1];
|
unsigned long namebit[077+1];
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#ifdef __ORCAC__
|
#if defined(__ORCAC__) && defined(DO_SEGMENTS)
|
||||||
segment "cpp_3_____";
|
segment "cpp_3_____";
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -159,14 +159,15 @@ makespace(Tokenrow *trp)
|
|||||||
return;
|
return;
|
||||||
if (tp->wslen) {
|
if (tp->wslen) {
|
||||||
if (tp->flag&XPWS
|
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;
|
tp->wslen = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
tp->t[-1] = ' ';
|
tp->t[-1] = ' ';
|
||||||
return;
|
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;
|
return;
|
||||||
tt = newstring(tp->t, tp->len, 1);
|
tt = newstring(tp->t, tp->len, 1);
|
||||||
*tt++ = ' ';
|
*tt++ = ' ';
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#ifdef __ORCAC__
|
#if defined(__ORCAC__) && defined(DO_SEGMENTS)
|
||||||
segment "cpp_3_____";
|
segment "cpp_3_____";
|
||||||
#endif
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -23,7 +23,6 @@ setup(int argc, char **argv)
|
|||||||
int c, fd, i;
|
int c, fd, i;
|
||||||
char *fp, *dp;
|
char *fp, *dp;
|
||||||
Tokenrow tr;
|
Tokenrow tr;
|
||||||
extern void setup_kwtab(void);
|
|
||||||
|
|
||||||
setup_kwtab();
|
setup_kwtab();
|
||||||
while ((c = getopt(argc, argv, "MNOVv+I:D:U:F:lg")) != -1)
|
while ((c = getopt(argc, argv, "MNOVv+I:D:U:F:lg")) != -1)
|
||||||
|
Loading…
Reference in New Issue
Block a user