javacc-7.0.1.test.tmp.MailProcessing.Digest 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.
/* Digest.java */
/* Generated By:JavaCC: Do not edit this line. Digest.java */
import java.io.*;
public class Digest implements DigestConstants {
static int count = 0;
static String buffer = "";
public static void main(String args[]) throws ParseException {
Digest parser = new Digest(System.in);
System.out.println("DIGEST OF RECENT MESSAGES FROM THE JAVACC MAILING LIST");
System.out.println("----------------------------------------------------------------------");
System.out.println("");
System.out.println("MESSAGE SUMMARY:");
System.out.println("");
parser.MailFile();
if (count == 0) {
System.out.println("There have been no messages since the last digest posting.");
System.out.println("");
System.out.println("----------------------------------------------------------------------");
} else {
System.out.println("");
System.out.println("----------------------------------------------------------------------");
System.out.println("");
System.out.println(buffer);
}
}
// 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();
}
jj_consume_token(0);
}
static final public void MailMessage() throws ParseException {Token subj=null, from=null, date=null, body;
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;
}
}
System.out.println(count + ". " + ((subj==null) ? "no subject" : subj.image));
buffer += "\n";
buffer += "Message " + count + ":\n";
buffer += "\n";
buffer += "Subject: " + ((subj==null) ? "no subject" : subj.image) + "\n";
buffer += "From: " + ((from==null) ? "" : from.image) + "\n";
buffer += "Date: " + ((date==null) ? "" : date.image) + "\n";
buffer += "\n";
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);
buffer += body.image;
}
jj_consume_token(END);
buffer += "\n";
buffer += "----------------------------------------------------------------------\n";
}
static private boolean jj_initialized_once = false;
/** Generated Token Manager. */
static public DigestTokenManager 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 Digest(java.io.InputStream stream) {
this(stream, null);
}
/** Constructor with InputStream and supplied encoding */
public Digest(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 DigestTokenManager(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 Digest(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 DigestTokenManager(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 DigestTokenManager(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 Digest(DigestTokenManager 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(DigestTokenManager 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<