I did solve the problem, Indhu gave the idea to change my code testing
class with his Question.  I had mistake in my testing class, here is
the new code that works. Many thanks for you help guys.


// I was invoking twice to the instance obejct of a parser in the previous code.

BTLParser.decl_codigo_return result=null;
                try {
                        BTLLexer lex = new BTLLexer(input);
                        CommonTokenStream tokens = new CommonTokenStream(lex);
                        BTLParser parser = new BTLParser(tokens);
                        result =parser.decl_codigo();
                        if (parser.numErrors == 0) {                            
                                        CommonTree tree = (CommonTree) 
result.getTree();
                                        System.out.println("El arbol AST:"+ 
tree.toStringTree());
                        }

                        
                } catch (RecognitionException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace
}

cheers,

Marouane

2009/5/8 Marwan Ajraoui <marwan.ale...@gmail.com>:
> Thanks for  your interest on the problem I 'm getting;
>
> The input I'm passing is a file without parsing errors; The code I'm
> using to test it is the one below:
>
>
>              CharStream input = new ANTLRFileStream(pathfiletest);
>                BTLLexer lex = new BTLLexer(input);
>                CommonTokenStream tokens = new CommonTokenStream(lex);
>                BTLParser parser = new BTLParser(tokens);
>                parser.decl_codigo();
>                if (parser.numErrors == 0) {
>
>                        parser.symbols_var.toString();
>
>                        try {
>                                CommonTree tree = (CommonTree) 
> parser.decl_codigo().getTree();
>                                System.out.println("El arbol AST:"+ 
> tree.toString());
>                        } catch (RecognitionException e) {
>                                // TODO Auto-generated catch block
>                                e.printStackTrace();
>                        }
>
> When i do pass i file with wrong statements, it does notify all the
> errors has to be notified, works properly. But in case of passing a
> correct file entry, for the grammar, i ' m getting the mentioned
> before error message.
>
> cheers and thanks,
>
> Marouane
>
>
>
> 2009/5/8 Indhu Bharathi <indh...@s7software.com>:
>> Looks like you are parsing with empty input. What is the input you gave to
>> the parser?
>>
>> Cheers, Indhu
>>
>> Marwan Ajraoui wrote:
>>>
>>> Hi there;
>>>
>>> I'm getting a strange error form a parser. I have defined a grammar,
>>> wich contains these rules;
>>>
>>>
>>> decl_codigo :  decl_libreria decl_program
>>>
>>> decl_libreria : TAG_START_OPEN 'function_library' ':' FN_ID TAG_CLOSE
>>> decl_funciones TAG_END_OPEN 'function_library' TAG_CLOSE;
>>>
>>> decl_program : TAG_START_OPEN 'program' type_return '::' FN_ID ':'
>>> params_list TAG_CLOSE lista_instrucciones TAG_END_OPEN 'program'
>>> TAG_CLOSE ;
>>>
>>>
>>>
>>>  So when i finish parsing the input tested, ANTLR notifies,
>>>
>>> line 0:-1 mismatched input '<EOF>' expecting TAG_START_OPEN
>>>
>>> To find out what could be the problem, i put the TAG_START_OPEN , so i
>>> got:
>>>
>>> line 0:-1 mismatched input '<EOF>' expecting  'function_library'
>>>
>>>
>>> I did check my .g, if i have some other reference to "decl_libreria",
>>> but No, the only reference is written is the one i mentioned before in
>>> the lines above. it is supposed to finish without errors and return an
>>> AST, as i set up the option.
>>>
>>> So why it does behave in recursive way? Any idea.
>>>
>>>
>>> thanks in advance
>>>
>>>
>>>
>>>
>>
>>
>
>
>
> --
> Marouane
>



-- 
Marouane

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to il-antlr-interest@googlegroups.com
To unsubscribe from this group, send email to 
il-antlr-interest+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to