107 lines
3.1 KiB
Diff
107 lines
3.1 KiB
Diff
--- Main.java.orig 2000-09-06 16:09:47.000000000 +0200
|
|
+++ Main.java 2024-02-21 16:03:00.139049849 +0100
|
|
@@ -1068,8 +1068,15 @@
|
|
// Added 6/24/98 Raimondas Lencevicius
|
|
// May be made more efficient by replacing String operations
|
|
// Assumes correctly formed input String. Performs no error checking
|
|
+
|
|
+ if (Main.staticFlag) { // S.M.Pericas
|
|
+ m_outstream.println("\tstatic private int[][] unpackFromString"+
|
|
+ "(int size1, int size2, String st) {");
|
|
+ }
|
|
+ else {
|
|
m_outstream.println("\tprivate int[][] unpackFromString"+
|
|
"(int size1, int size2, String st) {");
|
|
+ }
|
|
m_outstream.println("\t\tint colonIndex = -1;");
|
|
m_outstream.println("\t\tString lengthString;");
|
|
m_outstream.println("\t\tint sequenceLength = 0;");
|
|
@@ -1212,13 +1219,23 @@
|
|
int[] yy_cmap = new int[m_spec.m_ccls_map.length];
|
|
for (i = 0; i < m_spec.m_ccls_map.length; ++i)
|
|
yy_cmap[i] = m_spec.m_col_map[m_spec.m_ccls_map[i]];
|
|
+ if (Main.staticFlag) {
|
|
+ m_outstream.print("\tstatic private int yy_cmap[] = unpackFromString(");
|
|
+ }
|
|
+ else {
|
|
m_outstream.print("\tprivate int yy_cmap[] = unpackFromString(");
|
|
+ }
|
|
emit_table_as_string(new int[][] { yy_cmap });
|
|
m_outstream.println(")[0];");
|
|
m_outstream.println();
|
|
|
|
// CSA: modified yy_rmap to use string packing 9-Aug-1999
|
|
+ if (Main.staticFlag) {
|
|
+ m_outstream.print("\tstatic private int yy_rmap[] = unpackFromString(");
|
|
+ }
|
|
+ else {
|
|
m_outstream.print("\tprivate int yy_rmap[] = unpackFromString(");
|
|
+ }
|
|
emit_table_as_string(new int[][] { m_spec.m_row_map });
|
|
m_outstream.println(")[0];");
|
|
m_outstream.println();
|
|
@@ -1233,8 +1250,14 @@
|
|
CUtility.assert(dtrans.m_dtrans.length==m_spec.m_dtrans_ncols);
|
|
yy_nxt[elem] = dtrans.m_dtrans;
|
|
}
|
|
+ if (Main.staticFlag) {
|
|
+ m_outstream.print
|
|
+ ("\tstatic private int yy_nxt[][] = unpackFromString(");
|
|
+ }
|
|
+ else {
|
|
m_outstream.print
|
|
("\tprivate int yy_nxt[][] = unpackFromString(");
|
|
+ }
|
|
emit_table_as_string(yy_nxt);
|
|
m_outstream.println(");");
|
|
m_outstream.println();
|
|
@@ -3821,18 +3844,35 @@
|
|
/***************************************************************
|
|
Function: main
|
|
**************************************************************/
|
|
+ public static boolean staticFlag = false;
|
|
+
|
|
+ public static void printUsage() {
|
|
+ System.out.println("Usage: JLex.Main [-static] <filename>");
|
|
+ System.exit(1);
|
|
+ }
|
|
+
|
|
public static void main
|
|
(
|
|
String arg[]
|
|
)
|
|
throws java.io.IOException
|
|
{
|
|
+ int i;
|
|
CLexGen lg;
|
|
|
|
- if (arg.length < 1)
|
|
- {
|
|
- System.out.println("Usage: JLex.Main <filename>");
|
|
- return;
|
|
+ // Parse options starting with '-'
|
|
+ for (i = 0; i < arg.length && arg[i].charAt(0) == '-'; i++) {
|
|
+ if (arg[i].equals("-static")) {
|
|
+ staticFlag = true;
|
|
+ }
|
|
+ else {
|
|
+ printUsage();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ // Enough arguments left ?
|
|
+ if (arg.length - i < 1) {
|
|
+ printUsage();
|
|
}
|
|
|
|
/* Note: For debuging, it may be helpful to remove the try/catch
|
|
@@ -3840,7 +3880,7 @@
|
|
This gives more information. */
|
|
try
|
|
{
|
|
- lg = new CLexGen(arg[0]);
|
|
+ lg = new CLexGen(arg[i]);
|
|
lg.generate();
|
|
}
|
|
catch (Error e)
|