diff options
author | dkolovos | 2015-07-19 15:05:33 +0000 |
---|---|---|
committer | dkolovos | 2015-07-19 15:05:33 +0000 |
commit | 41b5ad9899dfe6420503eb99ed5f8731f1a7fde4 (patch) | |
tree | 2ed79e3cda4bc126f44b63ba1319f4d47bb23aff /plugins/org.eclipse.emf.emfatic.core/src/org/eclipse/emf/emfatic/core/lang/gen/parser/EmfaticParserTokenManager.java | |
parent | 0467950974ff544bda117570cb3ae04116a329c8 (diff) | |
download | org.eclipse.emfatic-41b5ad9899dfe6420503eb99ed5f8731f1a7fde4.tar.gz org.eclipse.emfatic-41b5ad9899dfe6420503eb99ed5f8731f1a7fde4.tar.xz org.eclipse.emfatic-41b5ad9899dfe6420503eb99ed5f8731f1a7fde4.zip |
Added support for Unicode characters
Diffstat (limited to 'plugins/org.eclipse.emf.emfatic.core/src/org/eclipse/emf/emfatic/core/lang/gen/parser/EmfaticParserTokenManager.java')
-rw-r--r-- | plugins/org.eclipse.emf.emfatic.core/src/org/eclipse/emf/emfatic/core/lang/gen/parser/EmfaticParserTokenManager.java | 75 |
1 files changed, 69 insertions, 6 deletions
diff --git a/plugins/org.eclipse.emf.emfatic.core/src/org/eclipse/emf/emfatic/core/lang/gen/parser/EmfaticParserTokenManager.java b/plugins/org.eclipse.emf.emfatic.core/src/org/eclipse/emf/emfatic/core/lang/gen/parser/EmfaticParserTokenManager.java index ba82363..14ddae2 100644 --- a/plugins/org.eclipse.emf.emfatic.core/src/org/eclipse/emf/emfatic/core/lang/gen/parser/EmfaticParserTokenManager.java +++ b/plugins/org.eclipse.emf.emfatic.core/src/org/eclipse/emf/emfatic/core/lang/gen/parser/EmfaticParserTokenManager.java @@ -581,8 +581,29 @@ private int jjStartNfaWithStates_0(int pos, int kind, int state) return jjMoveNfa_0(state, pos + 1); } static final long[] jjbitVec0 = { + 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL +}; +static final long[] jjbitVec2 = { 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL }; +static final long[] jjbitVec3 = { + 0x1ff00000fffffffeL, 0xffffffffffffc000L, 0xffffffffL, 0x600000000000000L +}; +static final long[] jjbitVec4 = { + 0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL +}; +static final long[] jjbitVec5 = { + 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL +}; +static final long[] jjbitVec6 = { + 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffL, 0x0L +}; +static final long[] jjbitVec7 = { + 0xffffffffffffffffL, 0xffffffffffffffffL, 0x0L, 0x0L +}; +static final long[] jjbitVec8 = { + 0x3fffffffffffL, 0x0L, 0x0L, 0x0L +}; private int jjMoveNfa_0(int startState, int curPos) { int startsAt = 0; @@ -779,22 +800,34 @@ private int jjMoveNfa_0(int startState, int curPos) } else { + int hiByte = (int)(curChar >> 8); + int i1 = hiByte >> 6; + long l1 = 1L << (hiByte & 077); int i2 = (curChar & 0xff) >> 6; long l2 = 1L << (curChar & 077); do { switch(jjstateSet[--i]) { + case 5: + case 25: + case 26: + if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) + break; + if (kind > 71) + kind = 71; + jjCheckNAdd(26); + break; case 1: - if ((jjbitVec0[i2] & l2) != 0L) + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) jjAddStates(5, 7); break; case 10: - if ((jjbitVec0[i2] & l2) != 0L) + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) jjAddStates(2, 4); break; case 22: - if ((jjbitVec0[i2] & l2) != 0L) + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) jjstateSet[jjnewStateCnt++] = 18; break; default : break; @@ -844,6 +877,38 @@ private int jjMoveStringLiteralDfa1_1(long active0) static final int[] jjnextStates = { 16, 22, 8, 10, 11, 1, 2, 4, 9, 12, 17, 19, }; +private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2) +{ + switch(hiByte) + { + case 0: + return ((jjbitVec2[i2] & l2) != 0L); + default : + if ((jjbitVec0[i1] & l1) != 0L) + return true; + return false; + } +} +private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2) +{ + switch(hiByte) + { + case 0: + return ((jjbitVec4[i2] & l2) != 0L); + case 48: + return ((jjbitVec5[i2] & l2) != 0L); + case 49: + return ((jjbitVec6[i2] & l2) != 0L); + case 51: + return ((jjbitVec7[i2] & l2) != 0L); + case 61: + return ((jjbitVec8[i2] & l2) != 0L); + default : + if ((jjbitVec3[i1] & l1) != 0L) + return true; + return false; + } +} /** Token literal values. */ public static final String[] jjstrLiteralImages = { @@ -945,9 +1010,7 @@ protected Token jjFillToken() beginColumn = input_stream.getBeginColumn(); endLine = input_stream.getEndLine(); endColumn = input_stream.getEndColumn(); - t = Token.newToken(jjmatchedKind); - t.kind = jjmatchedKind; - t.image = curTokenImage; + t = Token.newToken(jjmatchedKind, curTokenImage); t.beginLine = beginLine; t.endLine = endLine; |