javacc-7.0.1.test.tmp.MailProcessing.Faq Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javacc Show documentation
Show all versions of javacc Show documentation
JavaCC is a parser/scanner generator for Java.
/* Faq.java */
/* Generated By:JavaCC: Do not edit this line. Faq.java */
import java.io.*;
public class Faq implements FaqConstants {
static int count = 0;
static int beginAt = 1;
static PrintWriter indstr;
static {
try {
indstr = new PrintWriter(new FileWriter("index.html"));
indstr.println("Selected list of emails from the JavaCC mailing list ");
indstr.println("Selected list of emails from the JavaCC mailing list
");
} catch (IOException e) {
throw new Error();
}
}
static String fix(String s) {
String retval = "";
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '<') {
retval += "<";
} else if (c == '>') {
retval += ">";
} else {
retval += c;
}
}
return retval;
}
public static void main(String args[]) throws ParseException {
if (args.length == 1) {
beginAt = Integer.parseInt(args[0]);
}
Faq parser = new Faq(System.in);
parser.MailFile();
}
// PARSER SPECIFICATIONS BEGIN HERE
static final public
void MailFile() throws ParseException {
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case SUBJECT:
case FROM:
case DATE:{
;
break;
}
default:
jj_la1[0] = jj_gen;
break label_1;
}
count++;
MailMessage();
System.out.print(count + ".");
System.out.flush();
}
jj_consume_token(0);
System.out.println("");
indstr.close();
}
static final public void MailMessage() throws ParseException {PrintWriter msgstr = null;
Token subj=null, from=null, date=null, body;
if (count >= beginAt) {
try {
msgstr = new PrintWriter(new FileWriter(count + ".html"));
} catch (IOException e) {
throw new Error();
}
}
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case SUBJECT:{
subj = jj_consume_token(SUBJECT);
break;
}
case FROM:{
from = jj_consume_token(FROM);
break;
}
case DATE:{
date = jj_consume_token(DATE);
break;
}
default:
jj_la1[1] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case SUBJECT:
case FROM:
case DATE:{
;
break;
}
default:
jj_la1[2] = jj_gen;
break label_2;
}
}
indstr.print("");
if (subj == null) {
indstr.println("no subject
");
} else {
indstr.println(fix(subj.image) + "
");
}
if (count >= beginAt) {
msgstr.println("" + ((subj==null) ? "no subject" : fix(subj.image)) + " ");
msgstr.println("Subject: " + ((subj==null) ? "no subject" : fix(subj.image)) + "
");
msgstr.println("From: " + ((from==null) ? "" : fix(from.image)) + "
");
msgstr.println("Date: " + ((date==null) ? "" : fix(date.image)) + "
");
msgstr.println("
");
}
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
case BODY:{
;
break;
}
default:
jj_la1[3] = jj_gen;
break label_3;
}
body = jj_consume_token(BODY);
if (count >= beginAt) {
msgstr.print(fix(body.image) + "
");
}
}
jj_consume_token(END);
if (count >= beginAt) {
msgstr.close();
}
}
static private boolean jj_initialized_once = false;
/** Generated Token Manager. */
static public FaqTokenManager token_source;
static SimpleCharStream jj_input_stream;
/** Current token. */
static public Token token;
/** Next token. */
static public Token jj_nt;
static private int jj_ntk;
static private int jj_gen;
static final private int[] jj_la1 = new int[4];
static private int[] jj_la1_0;
static {
jj_la1_init_0();
}
private static void jj_la1_init_0() {
jj_la1_0 = new int[] {0xa800,0xa800,0xa800,0x20000,};
}
/** Constructor with InputStream. */
public Faq(java.io.InputStream stream) {
this(stream, null);
}
/** Constructor with InputStream and supplied encoding */
public Faq(java.io.InputStream stream, String encoding) {
if (jj_initialized_once) {
System.out.println("ERROR: Second call to constructor of static parser. ");
System.out.println(" You must either use ReInit() or set the JavaCC option STATIC to false");
System.out.println(" during parser generation.");
throw new Error();
}
jj_initialized_once = true;
try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
token_source = new FaqTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 4; i++) jj_la1[i] = -1;
}
/** Reinitialise. */
static public void ReInit(java.io.InputStream stream) {
ReInit(stream, null);
}
/** Reinitialise. */
static public void ReInit(java.io.InputStream stream, String encoding) {
try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
token_source.ReInit(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 4; i++) jj_la1[i] = -1;
}
/** Constructor. */
public Faq(java.io.Reader stream) {
if (jj_initialized_once) {
System.out.println("ERROR: Second call to constructor of static parser. ");
System.out.println(" You must either use ReInit() or set the JavaCC option STATIC to false");
System.out.println(" during parser generation.");
throw new Error();
}
jj_initialized_once = true;
jj_input_stream = new SimpleCharStream(stream, 1, 1);
token_source = new FaqTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 4; i++) jj_la1[i] = -1;
}
/** Reinitialise. */
static public void ReInit(java.io.Reader stream) {
if (jj_input_stream == null) {
jj_input_stream = new SimpleCharStream(stream, 1, 1);
} else {
jj_input_stream.ReInit(stream, 1, 1);
}
if (token_source == null) {
token_source = new FaqTokenManager(jj_input_stream);
}
token_source.ReInit(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 4; i++) jj_la1[i] = -1;
}
/** Constructor with generated Token Manager. */
public Faq(FaqTokenManager tm) {
if (jj_initialized_once) {
System.out.println("ERROR: Second call to constructor of static parser. ");
System.out.println(" You must either use ReInit() or set the JavaCC option STATIC to false");
System.out.println(" during parser generation.");
throw new Error();
}
jj_initialized_once = true;
token_source = tm;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 4; i++) jj_la1[i] = -1;
}
/** Reinitialise. */
public void ReInit(FaqTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 4; i++) jj_la1[i] = -1;
}
static private Token jj_consume_token(int kind) throws ParseException {
Token oldToken;
if ((oldToken = token).next != null) token = token.next;
else token = token.next = token_source.getNextToken();
jj_ntk = -1;
if (token.kind == kind) {
jj_gen++;
return token;
}
token = oldToken;
jj_kind = kind;
throw generateParseException();
}
/** Get the next Token. */
static final public Token getNextToken() {
if (token.next != null) token = token.next;
else token = token.next = token_source.getNextToken();
jj_ntk = -1;
jj_gen++;
return token;
}
/** Get the specific Token. */
static final public Token getToken(int index) {
Token t = token;
for (int i = 0; i < index; i++) {
if (t.next != null) t = t.next;
else t = t.next = token_source.getNextToken();
}
return t;
}
static private int jj_ntk_f() {
if ((jj_nt=token.next) == null)
return (jj_ntk = (token.next=token_source.getNextToken()).kind);
else
return (jj_ntk = jj_nt.kind);
}
static private java.util.List jj_expentries = new java.util.ArrayList();
static private int[] jj_expentry;
static private int jj_kind = -1;
/** Generate ParseException. */
static public ParseException generateParseException() {
jj_expentries.clear();
boolean[] la1tokens = new boolean[19];
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
for (int i = 0; i < 4; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<