[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fw: Help with Java coding utility



Date: Sat, 20 May 2000 15:45:06 +0100
From: Emmanuele Sordini <vega@ulisse.it>
To: SableCC Mailing List <sablecc-list@sable.mcgill.ca>
Subject: Help with Java coding utility

To all SableCC members
I'm quite new to SableCC (in fact, I downloaded it only a few days ago).
I was searching for a parser/lexer written in Java, I looked through 
some alternatives and I found this to be probably the best. Therefore,
I would like to congratulate Etienne Gagnon on his outstanding work.

I'm also seeking help, because I would like to carry out a project of
mine, and I thought a parser like SableCC would be of some help with
this: I hereby give a short description.

When coding in Java, except for trivial cases I'm used to declare class 
attributes (fields) as private or protected, and then to provide access 
to them via getter/setter methods. Adding a getter/setter pair can
be quite a bore if the class is not very simple. Therefore, here's 
what I would like to carry out with SableCC:

1) For all classes in a Java file (apart from inner classes), no matter
   if they are public or not, I would like my parser to generate a
   getter/setter method pair, and to put them at the end of the class
   declaration, just before the closing brace. As a result of this
   automated operation, the rest of the file should not be altered:
   comments, indentation should remain exactly in place.
3) The name of the setter/getter for the attribute "someField" should
   be: "setSomeField" and "getSomeField"; that is, the "get" or "set"
   words plus the field's name with the first letter turned to 
   upper case.
3) Here's an example of what the whole thing should look like:

public class Foo
{
  protected A firstAttribute;
  protectd B secondAttribute;

  // constructors and methods

  // Automatically-generated section
  public A getFirstAttribute()
  {
    return firstAttribute;
  }

  public void setFirstAttribute(A a)
  {
    firstAttribute = a;
  }
  // End of section
}

I started dabbling with the Java 1.1 example bundled with the 
SableCC distribution. So far, by subclassing the DepthFirstAdapter 
class I've only come up with something that stores into a list 
every (type, fieldName) pair for each attribute. Now I'm in trouble
because I would like to write the code generator and make it 
insert the getter/setter section in every class **without**
modifying its content in **any** way, comments included.

I apologize for this long post. I hope to have stirred the fellow 
members' curiosity. I will be deeply grateful for every hints/
pointers/suggestions that could help me achieve this goal.

Thanks in advance,
Emmanuele Sordini