Browse Source

Tightened up evaluator code to eliminate un-necessary attempts to match precise tokens.


git-svn-id: https://svn.microneil.com/svn/SNFMulti/trunk@64 dc71a809-1921-45c4-985c-09c81d0142d9
wx
madscientist 8 years ago
parent
commit
a8394a591c
2 changed files with 14 additions and 3 deletions
  1. 1
    1
      SNFMulti.cpp
  2. 13
    2
      snf_engine.cpp

+ 1
- 1
SNFMulti.cpp View File



//// Version Info //// Version Info


const char* SNF_ENGINE_VERSION = "SNFMulti Engine Version 3.1.4 Build: " __DATE__ " " __TIME__;
const char* SNF_ENGINE_VERSION = "SNFMulti Engine Version 3.1.5 Build: " __DATE__ " " __TIME__;


//// Script Caller Methods //// Script Caller Methods



+ 13
- 2
snf_engine.cpp View File

} }
void Evaluator::doFollowerJumpTable(unsigned short int i) { void Evaluator::doFollowerJumpTable(unsigned short int i) {
tryFollowingPrecisePath(i);
// tryFollowingPrecisePath(i);
// tryFollowingUppercasePath(); 0x41 - 0x5A // tryFollowingUppercasePath(); 0x41 - 0x5A
// tryFollowingWildAlphaPath(); 0x61 - 0x7A // tryFollowingWildAlphaPath(); 0x61 - 0x7A
// tryFollowingWildDigitPath(); 0x30 - 0x39 // tryFollowingWildDigitPath(); 0x30 - 0x39
switch(i) { switch(i) {
// These only match Precise, or WildAnything ...
// These nnly match WildAnything because they conflict with special check values...
// NUL, SOH, STX, ETX, EOT, ENQ, ACK, BEL, BS, TAB, LF, VT, FF, CR, SO, SI // NUL, SOH, STX, ETX, EOT, ENQ, ACK, BEL, BS, TAB, LF, VT, FF, CR, SO, SI
case 0x00: case 0x01: case 0x02: case 0x03: case 0x04: case 0x05: case 0x06: case 0x07: case 0x00: case 0x01: case 0x02: case 0x03: case 0x04: case 0x05: case 0x06: case 0x07:
case 0x08: { case 0x08: {
// tab // tab
case 0x09: { case 0x09: {
tryFollowingPrecisePath(i);
tryFollowingWildWhitePath(); tryFollowingWildWhitePath();
tryFollowingWildInlinePath(); tryFollowingWildInlinePath();
break; break;
// DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, FS, GS, RS, US // DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB, CAN, EM, SUB, ESC, FS, GS, RS, US
case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17:
case 0x18: case 0x19: case 0x1A: case 0x1B: case 0x1C: case 0x1D: case 0x1E: case 0x1F: { case 0x18: case 0x19: case 0x1A: case 0x1B: case 0x1C: case 0x1D: case 0x1E: case 0x1F: {
tryFollowingPrecisePath(i);
tryFollowingWildWhitePath(); tryFollowingWildWhitePath();
break; break;
} }
// the final fronteer // the final fronteer
case 0x20: { case 0x20: {
tryFollowingPrecisePath(i);
tryFollowingWildWhitePath(); tryFollowingWildWhitePath();
tryFollowingWildInlinePath(); tryFollowingWildInlinePath();
break; break;
// ! " # $ % & ' ( ) * + , - . / // ! " # $ % & ' ( ) * + , - . /
case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27:
case 0x28: case 0x29: case 0x2A: case 0x2B: case 0x2C: case 0x2D: case 0x2E: case 0x2F: { case 0x28: case 0x29: case 0x2A: case 0x2B: case 0x2C: case 0x2D: case 0x2E: case 0x2F: {
tryFollowingPrecisePath(i);
tryFollowingWildNonWhitePath(); tryFollowingWildNonWhitePath();
tryFollowingWildInlinePath(); tryFollowingWildInlinePath();
break; break;
// 0 - 9 // 0 - 9
case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37:
case 0x38: case 0x39: { case 0x38: case 0x39: {
tryFollowingPrecisePath(i);
tryFollowingWildDigitPath(); tryFollowingWildDigitPath();
tryFollowingWildNonWhitePath(); tryFollowingWildNonWhitePath();
tryFollowingWildInlinePath(); tryFollowingWildInlinePath();
// : ; < = > ? @ // : ; < = > ? @
case 0x3A: case 0x3B: case 0x3C: case 0x3D: case 0x3E: case 0x3F: case 0x3A: case 0x3B: case 0x3C: case 0x3D: case 0x3E: case 0x3F:
case 0x40: { case 0x40: {
tryFollowingPrecisePath(i);
tryFollowingWildNonWhitePath(); tryFollowingWildNonWhitePath();
tryFollowingWildInlinePath(); tryFollowingWildInlinePath();
break; break;
case 0x48: case 0x49: case 0x4A: case 0x4B: case 0x4C: case 0x4D: case 0x4E: case 0x4F: case 0x48: case 0x49: case 0x4A: case 0x4B: case 0x4C: case 0x4D: case 0x4E: case 0x4F:
case 0x50: case 0x51: case 0x52: case 0x53: case 0x54: case 0x55: case 0x56: case 0x57: case 0x50: case 0x51: case 0x52: case 0x53: case 0x54: case 0x55: case 0x56: case 0x57:
case 0x58: case 0x59: case 0x5A: { case 0x58: case 0x59: case 0x5A: {
tryFollowingPrecisePath(i);
tryFollowingNoCasePath(i); tryFollowingNoCasePath(i);
tryFollowingWildAlphaPath(); tryFollowingWildAlphaPath();
tryFollowingWildNonWhitePath(); tryFollowingWildNonWhitePath();
// [ \ ] ^ _ ` // [ \ ] ^ _ `
case 0x5B: case 0x5C: case 0x5D: case 0x5E: case 0x5F: case 0x5B: case 0x5C: case 0x5D: case 0x5E: case 0x5F:
case 0x60: { case 0x60: {
tryFollowingPrecisePath(i);
tryFollowingWildNonWhitePath(); tryFollowingWildNonWhitePath();
tryFollowingWildInlinePath(); tryFollowingWildInlinePath();
break; break;
case 0x68: case 0x69: case 0x6A: case 0x6B: case 0x6C: case 0x6D: case 0x6E: case 0x6F: case 0x68: case 0x69: case 0x6A: case 0x6B: case 0x6C: case 0x6D: case 0x6E: case 0x6F:
case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77:
case 0x78: case 0x79: case 0x7A: { case 0x78: case 0x79: case 0x7A: {
tryFollowingPrecisePath(i);
tryFollowingWildAlphaPath(); tryFollowingWildAlphaPath();
tryFollowingWildNonWhitePath(); tryFollowingWildNonWhitePath();
tryFollowingWildInlinePath(); tryFollowingWildInlinePath();
// { | } ~ // { | } ~
case 0x7B: case 0x7C: case 0x7D: case 0x7E: case 0x7F: { case 0x7B: case 0x7C: case 0x7D: case 0x7E: case 0x7F: {
tryFollowingPrecisePath(i);
tryFollowingWildNonWhitePath(); tryFollowingWildNonWhitePath();
tryFollowingWildInlinePath(); tryFollowingWildInlinePath();
} }
case 0xE8: case 0xE9: case 0xEA: case 0xEB: case 0xEC: case 0xED: case 0xEE: case 0xEF: case 0xE8: case 0xE9: case 0xEA: case 0xEB: case 0xEC: case 0xED: case 0xEE: case 0xEF:
case 0xF0: case 0xF1: case 0xF2: case 0xF3: case 0xF4: case 0xF5: case 0xF6: case 0xF7: case 0xF0: case 0xF1: case 0xF2: case 0xF3: case 0xF4: case 0xF5: case 0xF6: case 0xF7:
case 0xF8: case 0xF9: case 0xFA: case 0xFB: case 0xFC: case 0xFD: case 0xFE: case 0xFF: { case 0xF8: case 0xF9: case 0xFA: case 0xFB: case 0xFC: case 0xFD: case 0xFE: case 0xFF: {
tryFollowingPrecisePath(i);
tryFollowingWildNonWhitePath(); tryFollowingWildNonWhitePath();
tryFollowingWildInlinePath(); tryFollowingWildInlinePath();
break; break;

Loading…
Cancel
Save