home *** CD-ROM | disk | FTP | other *** search
- /*
- * lexAcorn.c
- * Copyright © 1993 Niklas Röjemo
- */
-
- #include "lex.h"
- #include "input.h"
-
- int lexAcornUnop(Lex *lex)
- {
- lex->tag = LexOperator;
- switch(inputGet()) {
- case 'n': case 'N':
- switch(inputGet()) {
- case 'o': case 'O':
- switch(inputGet()) {
- case 't': case 'T':
- if(inputGet()==':') { lex->LexOperator.op = Op_not; lex->LexOperator.pri = 10; return 1;}
- } break;
- } break;
- case 'l': case 'L':
- switch(inputGet()) {
- case 'n': case 'N':
- switch(inputGet()) {
- case 'o': case 'O':
- switch(inputGet()) {
- case 't': case 'T':
- if(inputGet()==':') { lex->LexOperator.op = Op_lnot; lex->LexOperator.pri = 10; return 1;}
- } break;
- } break;
- } break;
- }
- lex->tag = LexNone;
- return 0;
- }
-
- int lexAcornBinop(Lex *lex)
- {
- lex->tag = LexOperator;
- switch(inputGet()) {
- case 'a': case 'A':
- switch(inputGet()) {
- case 'n': case 'N':
- switch(inputGet()) {
- case 'd': case 'D':
- if(inputGet()==':') { lex->LexOperator.op = Op_and; lex->LexOperator.pri = 8; return 1;}
- } break;
- } break;
- case 'e': case 'E':
- switch(inputGet()) {
- case 'o': case 'O':
- switch(inputGet()) {
- case 'r': case 'R':
- if(inputGet()==':') { lex->LexOperator.op = Op_xor; lex->LexOperator.pri = 6; return 1;}
- } break;
- } break;
- case 'l': case 'L':
- switch(inputGet()) {
- case 'a': case 'A':
- switch(inputGet()) {
- case 'n': case 'N':
- switch(inputGet()) {
- case 'd': case 'D':
- if(inputGet()==':') { lex->LexOperator.op = Op_land; lex->LexOperator.pri = 2; return 1;}
- } break;
- } break;
- case 'e': case 'E':
- switch(inputGet()) {
- case 'o': case 'O':
- switch(inputGet()) {
- case 'r': case 'R':
- if(inputGet()==':') { lex->LexOperator.op = Op_ne; lex->LexOperator.pri = 1; return 1;}
- } break;
- } break;
- case 'o': case 'O':
- switch(inputGet()) {
- case 'r': case 'R':
- if(inputGet()==':') { lex->LexOperator.op = Op_lor; lex->LexOperator.pri = 1; return 1;}
- } break;
- } break;
- case 'm': case 'M':
- switch(inputGet()) {
- case 'o': case 'O':
- switch(inputGet()) {
- case 'd': case 'D':
- if(inputGet()==':') { lex->LexOperator.op = Op_mod; lex->LexOperator.pri = 10; return 1;}
- } break;
- } break;
- case 'o': case 'O':
- switch(inputGet()) {
- case 'r': case 'R':
- if(inputGet()==':') { lex->LexOperator.op = Op_or; lex->LexOperator.pri = 7; return 1;}
- } break;
- case 'r': case 'R':
- switch(inputGet()) {
- case 'o': case 'O':
- switch(inputGet()) {
- case 'l': case 'L':
- if(inputGet()==':') { lex->LexOperator.op = Op_rol; lex->LexOperator.pri = 5; return 1;}
- case 'r': case 'R':
- if(inputGet()==':') { lex->LexOperator.op = Op_ror; lex->LexOperator.pri = 5; return 1;}
- } break;
- } break;
- case 's': case 'S':
- switch(inputGet()) {
- case 'h': case 'H':
- switch(inputGet()) {
- case 'l': case 'L':
- if(inputGet()==':') { lex->LexOperator.op = Op_sl; lex->LexOperator.pri = 5; return 1;}
- case 'r': case 'R':
- if(inputGet()==':') { lex->LexOperator.op = Op_sr; lex->LexOperator.pri = 5; return 1;}
- } break;
- } break;
- }
- lex->tag = LexNone;
- return 0;
- }
-