Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkolovos2015-07-19 15:05:33 +0000
committerdkolovos2015-07-19 15:05:33 +0000
commit41b5ad9899dfe6420503eb99ed5f8731f1a7fde4 (patch)
tree2ed79e3cda4bc126f44b63ba1319f4d47bb23aff /plugins/org.eclipse.emf.emfatic.core/src/org/eclipse/emf/emfatic/core/lang/gen/parser/EmfaticParserTokenManager.java
parent0467950974ff544bda117570cb3ae04116a329c8 (diff)
downloadorg.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.java75
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;

Back to the top