Add support for the ~ operator.
This commit is contained in:
parent
b1576e2c77
commit
374e7a1c57
|
@ -104,6 +104,7 @@ char* manglename(char* name, char prefix);
|
|||
#define AMPER 23
|
||||
#define STAR 24
|
||||
#define QUEST 25
|
||||
#define NOT 26
|
||||
|
||||
#define PLUS 30
|
||||
#define MINUS 31
|
||||
|
|
|
@ -1060,6 +1060,7 @@ tand:
|
|||
goto oponst;
|
||||
|
||||
case EXCLA:
|
||||
case NOT:
|
||||
if (andflg)
|
||||
goto syntax;
|
||||
goto oponst;
|
||||
|
@ -1225,7 +1226,7 @@ int opdope[] = {
|
|||
034200, /* &un */
|
||||
034200, /* *un */
|
||||
014201, /* ? */
|
||||
000000, /* 26 */
|
||||
034200, /* ~un */
|
||||
000000, /* 27 */
|
||||
000000, /* 28 */
|
||||
000000, /* 29 */
|
||||
|
@ -1290,7 +1291,7 @@ char ctab[128] = {
|
|||
UNKN, LETTER, LETTER, LETTER, LETTER, LETTER, LETTER, LETTER,
|
||||
LETTER, LETTER, LETTER, LETTER, LETTER, LETTER, LETTER, LETTER,
|
||||
LETTER, LETTER, LETTER, LETTER, LETTER, LETTER, LETTER, LETTER,
|
||||
LETTER, LETTER, LETTER, LBRACE, OR, RBRACE, UNKN, UNKN
|
||||
LETTER, LETTER, LETTER, LBRACE, OR, RBRACE, NOT, UNKN
|
||||
};
|
||||
|
||||
/* debug function */
|
||||
|
@ -1320,6 +1321,7 @@ void printtoken(int tok, FILE *out)
|
|||
strtab[23] = "AMPER";
|
||||
strtab[24] = "STAR";
|
||||
strtab[25] = "QUEST";
|
||||
strtab[26] = "NOT";
|
||||
|
||||
strtab[30] = "PLUS";
|
||||
strtab[31] = "MINUS";
|
||||
|
|
|
@ -305,6 +305,11 @@ rcexpr(struct tnode *tr)
|
|||
C_ngi(wordsize);
|
||||
return;
|
||||
|
||||
case NOT:
|
||||
rcexpr(tr->tr1);
|
||||
C_com(wordsize);
|
||||
return;
|
||||
|
||||
case QUEST:
|
||||
cbranch(tr->tr1, o1=isn++);
|
||||
rcexpr(tr->tr2->tr1);
|
||||
|
|
Loading…
Reference in a new issue