version. In fact I see no initialisation for the variable check at
>
> Hi there,
>
> I am new to JAVA world and I have a small problem with JavaCC parsing.
> Please find the brief explanation of my problem below:
>
> I use a check.jj file that parses a string entered in the command line. The
> code for that is as below:
>
> --CODE--
>
> options {
> JDK_VERSION = "1.5";
> }
> PARSER_BEGIN(check)
> package test;
>
> public class check {
> public static void main(String args[]) throws Exception, XmlException,
> FileNotFoundException {
> System.out.println("Enter a Rule");
> BufferedReader bf = new BufferedReader(new
> InputStreamReader(System.in));
> check parser = new check(bf);
> String event = check.event();
> System.out.println("IN Main CLass: " +event);
>
> }
> }
> PARSER_END(check)
>
> -- CODE --
>
> The above code runs fine and method EVENT parses the string from command
> line.
>
> Now, instead of me providing the string from the command line, I need to
> pass that string from a XML file. The string I used to write in the command
> line in one of the XML TAGS in the XML file. The code for that is as below:
>
> -- CODE --
> options {
> JDK_VERSION = "1.5";
> }
> PARSER_BEGIN(check)
> package test;
>
> public class check {
> public static void main(String args[]) throws Exception, XmlException,
> FileNotFoundException {
> System.out.println("Rule from XML file");
>
>
> DocumentBuilderFactory docBuilderFactory =
> DocumentBuilderFactory.newInstance();
> DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
> Document doc = docBuilder.parse (new File("C:/bdb/Frule.xml"));
> doc.getDocumentElement ().normalize ();
>
> NodeList numberofrules = doc.getElementsByTagName("rule");
> int totalrules = numberofrules.getLength();
> System.out.println("Total no of rules : " + totalrules);
>
> for(int s=0; s<numberofrules.getLength() ; s++)
> {
> Node fstNode = numberofrules.item(s);
> if(fstNode.getNodeType() == Node.ELEMENT_NODE)
> {
>
> Element firstPersonElement = (Element)fstNode;
> NodeList firstNameList =
> firstPersonElement.getElementsByTagName("condaction");
> Element firstNameElement = (Element)firstNameList.item(0);
> //System.out.println("2");
> NodeList textFNList = firstNameElement.getChildNodes();
> String Rule = textFNList.item(0).getNodeValue().trim();
> System.out.println("Frule " +s+ ": " +Rule );
>
> String event = check.event(Rule);
> System.out.println("IN Main CLass: " +event);
>
> }
> }
> }
> }
> PARSER_END(check)
>
>
> Now when I run the above code I see that I am able to read the string from
> the XML file (variable Rule) but when I pass that string to the method
> EVENT, I get the following error:
>
> --------------------------------------------------
>
> Total no of rules : 5
>
> Frule 0: let #xyz := collection('data.dbxml')/Bookstore/Book let $x :=
> collection('data.dbxml')/Bookstore/Sales_Record/
> book_name/text() return if( $y[book_name = $x]/%quantity_in_stock/text() >=
> LOW) then insert nodes <Pending_Order>
> <t> 1</t> </Pending_Order > after
> collection("data.dbxml")/Bookstore/Pending_Order[book_name =
> 'maths'] else replace value of node
> collection('data.dbxml')/Bookstore/Pending_Order/copies_ordered with "1000"
>
> Exception in thread "main" java.lang.NullPointerException
> at test.check.jj_consume_token(check.java:999)
> at test.check.ValidCharacters(check.java:805)
> at test.check.event(check.java:71)
> at test.check.main(check.java:52)
> --------------------------------------------------
>
> Please help to identify the mistake for the above error. I think it is
> someting to do with the way I am passing the varialbe rule to method EVENT.
>
> Thanks.
>
> --
> View this message in context:
http://www.nabble.com/JAVACC-parser-tp22955955p22955955.html> Sent from the java.net - javacc users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
users-unsubscribe@...
> For additional commands, e-mail:
users-help@...
>
>