Browse Source

Parser accepts unicode (e.g. in comments).

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@2830 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 15 years ago
parent
commit
37a11d25bd
  1. 48
      prism/src/parser/PrismParser.java
  2. 1
      prism/src/parser/PrismParser.jj
  3. 22
      prism/src/parser/PrismParserTokenManager.java

48
prism/src/parser/PrismParser.java

@ -3033,30 +3033,6 @@ public class PrismParser implements PrismParserConstants {
finally { jj_save(12, xla); } finally { jj_save(12, xla); }
} }
static private boolean jj_3R_68() {
if (jj_scan_token(OR)) return true;
if (jj_3R_67()) return true;
return false;
}
static private boolean jj_3R_116() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_139()) {
jj_scanpos = xsp;
if (jj_3R_140()) {
jj_scanpos = xsp;
if (jj_3R_141()) return true;
}
}
if (jj_scan_token(LBRACKET)) return true;
if (jj_3R_142()) return true;
xsp = jj_scanpos;
if (jj_3R_143()) jj_scanpos = xsp;
if (jj_scan_token(RBRACKET)) return true;
return false;
}
static private boolean jj_3_12() { static private boolean jj_3_12() {
if (jj_3R_29()) return true; if (jj_3R_29()) return true;
if (jj_scan_token(LPARENTH)) return true; if (jj_scan_token(LPARENTH)) return true;
@ -4259,6 +4235,30 @@ public class PrismParser implements PrismParserConstants {
return false; return false;
} }
static private boolean jj_3R_68() {
if (jj_scan_token(OR)) return true;
if (jj_3R_67()) return true;
return false;
}
static private boolean jj_3R_116() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_139()) {
jj_scanpos = xsp;
if (jj_3R_140()) {
jj_scanpos = xsp;
if (jj_3R_141()) return true;
}
}
if (jj_scan_token(LBRACKET)) return true;
if (jj_3R_142()) return true;
xsp = jj_scanpos;
if (jj_3R_143()) jj_scanpos = xsp;
if (jj_scan_token(RBRACKET)) return true;
return false;
}
static private boolean jj_initialized_once = false; static private boolean jj_initialized_once = false;
/** Generated Token Manager. */ /** Generated Token Manager. */
static public PrismParserTokenManager token_source; static public PrismParserTokenManager token_source;

1
prism/src/parser/PrismParser.jj

@ -26,6 +26,7 @@
options { options {
LOOKAHEAD = 1; LOOKAHEAD = 1;
UNICODE_INPUT = true;
} }
PARSER_BEGIN(PrismParser) PARSER_BEGIN(PrismParser)

22
prism/src/parser/PrismParserTokenManager.java

@ -827,6 +827,9 @@ static private int jjStartNfaWithStates_0(int pos, int kind, int state)
return jjMoveNfa_0(state, pos + 1); return jjMoveNfa_0(state, pos + 1);
} }
static final long[] jjbitVec0 = { static final long[] jjbitVec0 = {
0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
};
static final long[] jjbitVec2 = {
0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
}; };
static private int jjMoveNfa_0(int startState, int curPos) static private int jjMoveNfa_0(int startState, int curPos)
@ -1045,6 +1048,9 @@ static private int jjMoveNfa_0(int startState, int curPos)
} }
else else
{ {
int hiByte = (int)(curChar >> 8);
int i1 = hiByte >> 6;
long l1 = 1L << (hiByte & 077);
int i2 = (curChar & 0xff) >> 6; int i2 = (curChar & 0xff) >> 6;
long l2 = 1L << (curChar & 077); long l2 = 1L << (curChar & 077);
do do
@ -1052,11 +1058,11 @@ static private int jjMoveNfa_0(int startState, int curPos)
switch(jjstateSet[--i]) switch(jjstateSet[--i])
{ {
case 2: case 2:
if ((jjbitVec0[i2] & l2) != 0L)
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
jjAddStates(4, 6); jjAddStates(4, 6);
break; break;
case 16: case 16:
if ((jjbitVec0[i2] & l2) != 0L)
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
jjAddStates(12, 13); jjAddStates(12, 13);
break; break;
default : break; default : break;
@ -1079,6 +1085,18 @@ static private int jjMoveNfa_0(int startState, int curPos)
static final int[] jjnextStates = { static final int[] jjnextStates = {
10, 11, 12, 18, 2, 3, 5, 20, 21, 22, 13, 14, 16, 17, 10, 11, 12, 18, 2, 3, 5, 20, 21, 22, 13, 14, 16, 17,
}; };
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;
}
}
/** Token literal values. */ /** Token literal values. */
public static final String[] jjstrLiteralImages = { public static final String[] jjstrLiteralImages = {

Loading…
Cancel
Save