permaculture playing cards*
The moose likes Other Open Source Projects and the fly likes [JavaCC] How parsing file ASCII Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Products » Other Open Source Projects
Bookmark "[JavaCC] How parsing file ASCII" Watch "[JavaCC] How parsing file ASCII" New topic
Author

[JavaCC] How parsing file ASCII

Angelo Giugliano
Greenhorn

Joined: Sep 22, 2004
Posts: 6
Hello all and i hope that this forum is that just one
I'm starting to use javaCC.
I'm trying to parse a file ASCII to extract some text.
My file text.txt contains:



VALBEGINLa riforma della tassazione messa in campo dal Governo ha provocato imbarazzi
VALBEGINnell�opposizione politica e sociale. Come si pu� dichiarare di essere contro la riduzione
VALBEGINdelle tasse? � stato questo il quesito paradosso che ha prodotto slogans critici di scarso valore
VALBEBINAntonio Amurri.


VALBEGINLa riforma della tassazione messa in campo dal Governo ha provocato imbarazzi
VALBEGINnell�opposizione politica e sociale. Come si pu� dichiarare di essere contro la riduzione
VALBEGINdelle tasse? � stato questo il quesito paradosso che ha prodotto slogans critici di scarso valore
VALBEBINAntonio Amurri.



The lines to extract are:

La riforma della tassazione messa in campo dal Governo ha provocato imbarazzi nell�opposizione politica e sociale. Come si pu� dichiarare di essere contro la riduzione delle tasse? � stato questo il quesito paradosso che ha prodotto slogans critici di scarso valore
Antonio Amurri.

La riforma della tassazione messa in campo dal Governo ha provocato imbarazzi nell�opposizione politica e sociale. Come si pu� dichiarare di essere contro la riduzione delle tasse? � stato questo il quesito paradosso che ha prodotto slogans critici di scarso valore Antonio Amurri.



An ideas?

I tried to resolve the problem with the following code (file Test.jj):


options {
DEBUG_PARSER=true;
DEBUG_TOKEN_MANAGER=true;
}

PARSER_BEGIN(Test)

import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;

public class Test {

public static void main(String args[]) throws IllegalStateException {
try {
BufferedReader fileReader = new BufferedReader(new InputStreamReader(new FileInputStream(args[0])));
Test parser = new Test(fileReader);
StringBuffer buffer = new StringBuffer();
String str = parser.ExtractText(buffer);
System.out.println(str);

}
catch (FileNotFoundException e) {
e.printStackTrace();
throw new IllegalStateException();
}
catch (TokenMgrError e) {
e.printStackTrace();
throw new IllegalStateException();
}
catch (ParseException e) {
e.printStackTrace();
throw new IllegalStateException();
}
}
}

PARSER_END(Test)

TOKEN : { < CONST: "VALBEGIN" > }
SPECIAL_TOKEN : { <TEXT: (~["\n", "\r"])+("\n"|"\r"|"\r\n") > }

String ExtractText(StringBuffer sb) :
{
Token t = new Token();
}
{
(t=<CONST> +
<EOF>
{if (t.specialToken == null) return null;}
{Token tmp = t.specialToken;}
{while (tmp.specialToken != null) tmp = tmp.specialToken;}
{while (tmp != null) {sb.append(tmp.image);tmp=tmp.next;}}
{return sb.toString();}
}

but don't working. The exception throwed is:

ParseException: Encountered "<EOF>" at line 3, column 12.
Was expecting:
"VALBEGIN" ...

at Test.generateParseException(Test.java:222)
at Test.jj_consume_token(Test.java:160)
at Test.ExtractText(Test.java:38)
at Test.main(Test.java:14)
Exception in thread "main" java.lang.IllegalStateException
at Test.main(Test.java:28)

An suggestions?

Thanks.

Angelo Giugliano
 
 
subject: [JavaCC] How parsing file ASCII
 
Similar Threads
Is Socket.isConnected() Thread Safe?
Deploying j2ee project on jboss to multiple pc's
where is the bug?
JAVA/mySQL/Tomcat/SOAP problem
org.apache.derby.client.am.DisconnectException: java.net.BindException : Error opening socket to