#include <stdio.h>
#include <string.h>
+// Make the scope character ('.') be a symbol, otherwise it's just
+// a ident character
#define USE_SCOPE_CHAR 0
#define DEBUG 0
case '/': ret = TOK_DIV; break;
case '*': ret = TOK_MUL; break;
- case '+': ret = TOK_PLUS; break;
+ case '+':
+ if( *File->CurPos == '+' ) {
+ File->CurPos ++;
+ ret = TOK_INCREMENT;
+ break;
+ }
+ if( *File->CurPos == '=' ) {
+ File->CurPos ++;
+ ret = TOK_ASSIGN_PLUS;
+ break;
+ }
+ ret = TOK_PLUS;
+ break;
case '-':
+ if( *File->CurPos == '-' ) {
+ File->CurPos ++;
+ ret = TOK_DECREMENT;
+ break;
+ }
+ if( *File->CurPos == '=' ) {
+ File->CurPos ++;
+ ret = TOK_ASSIGN_MINUS;
+ break;
+ }
if( *File->CurPos == '>' ) {
File->CurPos ++;
ret = TOK_ELEMENT;
+ break;
}
- else
- ret = TOK_MINUS;
+ ret = TOK_MINUS;
break;
// Strings
ret = TOK_ASSIGN;
break;
+ // Less-Than
+ case '<':
+ // Less-Than or Equal
+ if( *File->CurPos == '=' ) {
+ File->CurPos ++;
+ ret = TOK_LTE;
+ break;
+ }
+ ret = TOK_LT;
+ break;
+
+ // Greater-Than
+ case '>':
+ // Greater-Than or Equal
+ if( *File->CurPos == '=' ) {
+ File->CurPos ++;
+ ret = TOK_GTE;
+ break;
+ }
+ ret = TOK_GT;
+ break;
+
// Variables
// \$[0-9]+ or \$[_a-zA-Z][_a-zA-Z0-9]*
case '$':