Browse Source

Parser: Add position info to update elements for better error reporting.

accumulation-v4.7
Dave Parker 7 years ago
parent
commit
953e2f5be3
  1. 115
      prism/src/parser/PrismParser.java
  2. 4
      prism/src/parser/PrismParser.jj

115
prism/src/parser/PrismParser.java

@ -1221,12 +1221,13 @@ update.setPosition(begin, getToken(0)); {if ("" != null) return update;}
static final public void UpdateElement(Update update) throws ParseException {ExpressionIdent var = null;
Expression expr = null;
jj_consume_token(LPARENTH);
Token begin = null;
begin = jj_consume_token(LPARENTH);
var = IdentifierPrime();
jj_consume_token(EQ);
expr = Expression(false, false);
jj_consume_token(RPARENTH);
update.addElement(var, expr);
UpdateElement ue = new UpdateElement(var, expr); ue.setPosition(begin, getToken(0)); update.addElement(ue);
}
// Module renaming
@ -3713,21 +3714,6 @@ fl.setLHS(s);
finally { jj_save(17, xla); }
}
static private boolean jj_3R_164()
{
if (jj_3R_29()) return true;
return false;
}
static private boolean jj_3R_46()
{
if (jj_3R_55()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_56()) jj_scanpos = xsp;
return false;
}
static private boolean jj_3R_184()
{
if (jj_scan_token(OR)) return true;
@ -4174,15 +4160,6 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3_2()
{
if (jj_scan_token(DQUOTE)) return true;
if (jj_3R_29()) return true;
if (jj_scan_token(DQUOTE)) return true;
if (jj_scan_token(COLON)) return true;
return false;
}
static private boolean jj_3R_143()
{
if (jj_3R_29()) return true;
@ -4209,6 +4186,15 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3_2()
{
if (jj_scan_token(DQUOTE)) return true;
if (jj_3R_29()) return true;
if (jj_scan_token(DQUOTE)) return true;
if (jj_scan_token(COLON)) return true;
return false;
}
static private boolean jj_3R_59()
{
if (jj_scan_token(OR)) return true;
@ -4608,14 +4594,6 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3_1()
{
if (jj_scan_token(MODULE)) return true;
if (jj_3R_29()) return true;
if (jj_scan_token(EQ)) return true;
return false;
}
static private boolean jj_3R_117()
{
Token xsp;
@ -4628,6 +4606,14 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3_1()
{
if (jj_scan_token(MODULE)) return true;
if (jj_3R_29()) return true;
if (jj_scan_token(EQ)) return true;
return false;
}
static private boolean jj_3R_199()
{
if (jj_3R_33()) return true;
@ -4819,13 +4805,6 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3R_41()
{
if (jj_scan_token(AND)) return true;
if (jj_3R_40()) return true;
return false;
}
static private boolean jj_3R_198()
{
if (jj_scan_token(MAX)) return true;
@ -4858,6 +4837,13 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3R_41()
{
if (jj_scan_token(AND)) return true;
if (jj_3R_40()) return true;
return false;
}
static private boolean jj_3R_106()
{
Token xsp;
@ -4930,16 +4916,6 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3R_40()
{
if (jj_scan_token(LPARENTH)) return true;
if (jj_3R_48()) return true;
if (jj_scan_token(EQ)) return true;
if (jj_3R_38()) return true;
if (jj_scan_token(RPARENTH)) return true;
return false;
}
static private boolean jj_3R_104()
{
if (jj_3R_106()) return true;
@ -4951,6 +4927,16 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3R_40()
{
if (jj_scan_token(LPARENTH)) return true;
if (jj_3R_48()) return true;
if (jj_scan_token(EQ)) return true;
if (jj_3R_38()) return true;
if (jj_scan_token(RPARENTH)) return true;
return false;
}
static private boolean jj_3R_105()
{
if (jj_scan_token(OR)) return true;
@ -4969,12 +4955,6 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3_5()
{
if (jj_3R_30()) return true;
return false;
}
static private boolean jj_3R_102()
{
if (jj_3R_104()) return true;
@ -4986,6 +4966,12 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3_5()
{
if (jj_3R_30()) return true;
return false;
}
static private boolean jj_3R_30()
{
Token xsp;
@ -5546,6 +5532,21 @@ fl.setLHS(s);
return false;
}
static private boolean jj_3R_164()
{
if (jj_3R_29()) return true;
return false;
}
static private boolean jj_3R_46()
{
if (jj_3R_55()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_56()) jj_scanpos = xsp;
return false;
}
static private boolean jj_initialized_once = false;
/** Generated Token Manager. */
static public PrismParserTokenManager token_source;

4
prism/src/parser/PrismParser.jj

@ -869,9 +869,11 @@ void UpdateElement(Update update) :
{
ExpressionIdent var = null;
Expression expr = null;
Token begin = null;
}
{
<LPARENTH> var = IdentifierPrime() <EQ> expr = Expression(false, false) <RPARENTH> { update.addElement(var, expr); }
begin = <LPARENTH> var = IdentifierPrime() <EQ> expr = Expression(false, false) <RPARENTH>
{ UpdateElement ue = new UpdateElement(var, expr); ue.setPosition(begin, getToken(0)); update.addElement(ue); }
}
// Module renaming

Loading…
Cancel
Save