[antlr-interest] Re: Line number [sls]-bl.spamcop.net
Morne Streicher
mornes at mosaicsoftware.com
Tue Feb 11 22:08:51 PST 2003
Dear All
Thanks to some help from this interest group, I found it easy to track line numbers. Here is what I have done. Hope this concrete example helps - and off course, it's only one way of doing it...
Sure there are more elegant ways - but this works for me...
Step 1 : Extend the CommonAST class:
----------------------------------------------------------
public class OTS_AST extends CommonAST {
int line_number = -1;
int column_number = -1;
public OTS_AST() {
}
public OTS_AST(Token tok) {
initialize(tok);
}
public void initialize(Token tok) {
setText(tok.getText());
setType(tok.getType());
this.line_number = tok.getLine();
this.column_number = tok.getColumn();
}
public int getLine()
{
return this.line_number;
}
public int getColumn()
{
return this.column_number;
}
}
Step 2 : Tell the parser which AST class to use:
---------------------------------------------------
//....
otsLexer lexer = new otsLexer(fis);
lexer.setFilename(filename);
otsParser parser = new otsParser(lexer);
parser.setFilename(filename);
parser.setASTNodeType("OTS_AST"); --NB!!!!!!!!
parser.otscript();
//....
Step 3: Get your instance of the AST
----------------------------------------
//.....
OTS_AST ast = (OTS_AST) parser.getAST()
int token1_line = ast.getLine();
//...
And that's it.
M.
-----Original Message-----
From: tdknghi <nk.truong at student.qut.edu.au>
[mailto:nk.truong at student.qut.edu.au]
Sent: 12 February 2003 07:58
To: antlr-interest at yahoogroups.com
Subject: [antlr-interest] Re: Line number [sls]-bl.spamcop.net
Importance: Low
Hi,
Sorry for being so stupid. Could you give me more detail instruction
how to keep track the line number for Java programs (by AST view)?
I read the track line number section in the ANTLR documentation.
However, I haven't got a clear idea how to do it.
Thanks.
Regards,
MiMi
--- In antlr-interest at yahoogroups.com, "micheal_jor <open.zone at v...>"
<open.zone at v...> wrote:
>
> > Hi all,
> >
> > I have seen a lot of post regarding about display the line number
> in the
> > AST vew. However, there is no clear and example of how to do it. I
> am
> > currently using antlr 2-7.2.
> > Could you please let me know how to get it done. Thanks.
> >
> > Regards,
> > MiMi
>
> If you are using Java or C# and, if by "AST view" you mean the
> ASTFrame mechanism for viewing your ASTs then you can do the
> following:
>
> 1. Create a subclass of the appropriate standard Common***AST
class
> (if you haven't already)
> 2. Override toString()/ToString() to print line numbers as well
> 3. Instruct your parser to use your new AST class with
> parser.setASTNodeType(string) or by using the "ASTLableType"
option
> in your grammar.
>
> Run your app as usual ;-)
>
> Micheal
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list