Browse Source

Added -keywords switch.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@2321 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 15 years ago
parent
commit
a04e766e04
  1. 162
      prism/src/parser/PrismParser.java
  2. 14
      prism/src/parser/PrismParser.jj
  3. 1
      prism/src/parser/PrismParserTokenManager.java
  4. 21
      prism/src/prism/Prism.java
  5. 22
      prism/src/prism/PrismCL.java

162
prism/src/parser/PrismParser.java

@ -2,6 +2,7 @@
package parser;
import java.io.*;
import java.util.List;
import java.util.ArrayList;
import parser.ast.*;
@ -236,13 +237,22 @@ public class PrismParser implements PrismParserConstants {
return res;
}
// Test a string to see if it is a PRISM language keyword
/**
* Test a string to see if it is a PRISM language keyword.
*/
public static boolean isKeyword(String s)
{
return keywordList.contains(s);
}
/**
* Get access to the list of all PRISM language keywords.
*/
public static List<String> getListOfKeywords()
{
return keywordList;
}
/**
* Set the tab size used by the lexer/parser.
*/
@ -2973,80 +2983,6 @@ public class PrismParser implements PrismParserConstants {
finally { jj_save(11, xla); }
}
static private boolean jj_3R_135() {
if (jj_3R_155()) return true;
return false;
}
static private boolean jj_3R_160() {
if (jj_scan_token(MAX)) return true;
if (jj_scan_token(EQ)) return true;
if (jj_scan_token(QMARK)) return true;
return false;
}
static private boolean jj_3R_64() {
if (jj_3R_66()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_67()) { jj_scanpos = xsp; break; }
}
return false;
}
static private boolean jj_3R_138() {
if (jj_scan_token(RMAX)) return true;
if (jj_scan_token(EQ)) return true;
if (jj_scan_token(QMARK)) return true;
return false;
}
static private boolean jj_3R_159() {
if (jj_scan_token(MIN)) return true;
if (jj_scan_token(EQ)) return true;
if (jj_scan_token(QMARK)) return true;
return false;
}
static private boolean jj_3R_137() {
if (jj_scan_token(RMIN)) return true;
if (jj_scan_token(EQ)) return true;
if (jj_scan_token(QMARK)) return true;
return false;
}
static private boolean jj_3R_158() {
if (jj_scan_token(EQ)) return true;
if (jj_scan_token(QMARK)) return true;
return false;
}
static private boolean jj_3R_157() {
if (jj_3R_78()) return true;
if (jj_3R_34()) return true;
return false;
}
static private boolean jj_3R_136() {
if (jj_scan_token(R)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_156()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_157()) {
jj_scanpos = xsp;
if (jj_3R_158()) {
jj_scanpos = xsp;
if (jj_3R_159()) {
jj_scanpos = xsp;
if (jj_3R_160()) return true;
}
}
}
return false;
}
static private boolean jj_3R_65() {
if (jj_scan_token(OR)) return true;
if (jj_3R_64()) return true;
@ -4169,6 +4105,80 @@ public class PrismParser implements PrismParserConstants {
return false;
}
static private boolean jj_3R_135() {
if (jj_3R_155()) return true;
return false;
}
static private boolean jj_3R_160() {
if (jj_scan_token(MAX)) return true;
if (jj_scan_token(EQ)) return true;
if (jj_scan_token(QMARK)) return true;
return false;
}
static private boolean jj_3R_64() {
if (jj_3R_66()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_67()) { jj_scanpos = xsp; break; }
}
return false;
}
static private boolean jj_3R_138() {
if (jj_scan_token(RMAX)) return true;
if (jj_scan_token(EQ)) return true;
if (jj_scan_token(QMARK)) return true;
return false;
}
static private boolean jj_3R_159() {
if (jj_scan_token(MIN)) return true;
if (jj_scan_token(EQ)) return true;
if (jj_scan_token(QMARK)) return true;
return false;
}
static private boolean jj_3R_137() {
if (jj_scan_token(RMIN)) return true;
if (jj_scan_token(EQ)) return true;
if (jj_scan_token(QMARK)) return true;
return false;
}
static private boolean jj_3R_158() {
if (jj_scan_token(EQ)) return true;
if (jj_scan_token(QMARK)) return true;
return false;
}
static private boolean jj_3R_157() {
if (jj_3R_78()) return true;
if (jj_3R_34()) return true;
return false;
}
static private boolean jj_3R_136() {
if (jj_scan_token(R)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_156()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3R_157()) {
jj_scanpos = xsp;
if (jj_3R_158()) {
jj_scanpos = xsp;
if (jj_3R_159()) {
jj_scanpos = xsp;
if (jj_3R_160()) return true;
}
}
}
return false;
}
static private boolean jj_initialized_once = false;
/** Generated Token Manager. */
static public PrismParserTokenManager token_source;

14
prism/src/parser/PrismParser.jj

@ -33,6 +33,7 @@ PARSER_BEGIN(PrismParser)
package parser;
import java.io.*;
import java.util.List;
import java.util.ArrayList;
import parser.ast.*;
@ -268,13 +269,22 @@ public class PrismParser
return res;
}
// Test a string to see if it is a PRISM language keyword
/**
* Test a string to see if it is a PRISM language keyword.
*/
public static boolean isKeyword(String s)
{
return keywordList.contains(s);
}
/**
* Get access to the list of all PRISM language keywords.
*/
public static List<String> getListOfKeywords()
{
return keywordList;
}
/**
* Set the tab size used by the lexer/parser.
*/

1
prism/src/parser/PrismParserTokenManager.java

@ -1,6 +1,7 @@
/* Generated By:JavaCC: Do not edit this line. PrismParserTokenManager.java */
package parser;
import java.io.*;
import java.util.List;
import java.util.ArrayList;
import parser.ast.*;
import parser.type.*;

21
prism/src/prism/Prism.java

@ -657,6 +657,27 @@ public class Prism implements PrismSettingsListener
return 0;
}
/**
* Get access to the list of all PRISM language keywords.
*/
public static List<String> getListOfKeyords()
{
try {
// obtain exclusive access to the prism parser
// (don't forget to release it afterwards)
try {
return getPrismParser().getListOfKeywords();
}
finally {
// release prism parser
releasePrismParser();
}
}
catch(InterruptedException ie) {
return null;
}
}
/**
* Initialise PRISM.
*/

22
prism/src/prism/PrismCL.java

@ -27,6 +27,7 @@
package prism;
import java.io.*;
import java.util.*;
import parser.*;
import parser.ast.*;
@ -913,6 +914,12 @@ public class PrismCL
printVersion();
exit();
}
// print a list of all keywords (hidden option)
else if (sw.equals("keywords")) {
printListOfKeywords();
exit();
}
// property/properties given in command line
else if (sw.equals("pctl") || sw.equals("csl")) {
@ -1635,7 +1642,7 @@ public class PrismCL
else if (sw.equals("explicitbuildtest")) {
explicitbuildtest = true;
}
// unknown switch - error
else {
errorAndExit("Invalid switch -" + sw + " (type \"prism -help\" for full list)");
@ -1844,6 +1851,19 @@ public class PrismCL
mainLog.println("PRISM version " + Prism.getVersion());
}
/**
* Print out a list of all PRISM language keywords.
*/
private void printListOfKeywords()
{
List<String> list = Prism.getListOfKeyords();
mainLog.print("PRISM keywords:");
for (String s : list) {
mainLog.print(" " + s);
}
mainLog.println();
}
// report (non-fatal) error
private void error(String s)

Loading…
Cancel
Save