htmlvis.beh.html
HtmlVisitor{
(@
private static final int CD = 0, BEH = 1, JAVA = 2;
private int type; // file extension type
private Hashtable hash; // to look up classnames
private File outputfile; // name of output file
private java.io.PrintWriter out;
java.io.PrintWriter get_out() { return out; }
void set_out(java.io.PrintWriter new_out) { out = new_out; }
/** provide output filename and hashtable of classes */
HtmlVisitor(java.io.PrintWriter out, File file, Hashtable h) {
set_out(out);
outputfile = file;
if (file.toString().endsWith(".cd"))
type = CD;
else if (file.toString().endsWith(".beh"))
type = BEH;
else if (file.toString().endsWith(".java"))
type = JAVA;
hash = h;
}
/** Generates the HTML code for a class.
Peforms all the logic for cross-referencing classes
among the various file types
*/
public void htmlTagBeg(String src) {
int name_index = 0;
int index = 0, index2 = 0;
int count = 0; // which class reference
boolean anchor = false; // did we already place an anchor?
boolean onclick = false; // was an onClick placed?
HtmlClassIndex hci;
String otherfile = ""; // cross-reference filename
String otherfile2 = ""; // cross-reference filename
// see if the classname is already in the hashtable
hci = (HtmlClassIndex)hash.get(src);
if(hci == null) {
// provide a new one
hci = new HtmlClassIndex();
}
// what type of file are we parsing?
// get the proper extension index and reference count
switch(type) {
case CD: {
// this is a cd file
index = Program.findExtIndex(".beh"); // cd file references beh file
// get the next class reference number
count = hci.getCd().size();
hci.addCd(outputfile.toString()); // store filename for this reference
// find first ref in list of beh name tags
if(!hci.getBeh().isEmpty())
otherfile = (String)hci.getBeh().firstElement();
if(Program.getJavaFiles().contains(new File(Program.gendir,
src + ".java"))) {
// reference java file
index2 = Program.findExtIndex(".java"); // references java file
otherfile2 = Program.gen + src + ".java";
}
break;
}
case BEH: {
// this is a behfile
if(Program.getHtmlCdClassNames().containsKey(src)) {
// reference the cd file
index = Program.findExtIndex(".cd"); // beh references cd file
otherfile = ((Vector)Program.getFiles().elementAt(index)).elementAt(name_index).toString();
}
if(Program.getJavaFiles().contains(new File(Program.gendir,
src + ".java"))) {
// reference java file
index2 = Program.findExtIndex(".java"); // references java file
otherfile2 = Program.gen + src + ".java";
}
// get the next class reference number
count = hci.getBeh().size();
hci.addBeh(outputfile.toString()); // store filename for this reference
break;
}
case JAVA: {
// this is a javafile
if(Program.getHtmlCdClassNames().containsKey(src)) {
// reference the cd file
index = Program.findExtIndex(".cd"); // java references cd file
otherfile = "../" + ((Vector)Program.getFiles().elementAt(index)).elementAt(name_index).toString();
}
if(Program.getHtmlBehClassNames().containsKey(src)) {
// reference beh file
// find first ref in list of beh name tags
if(!hci.getBeh().isEmpty()) {
index2 = Program.findExtIndex(".beh"); // cd file references beh file
otherfile2 = "../" + (String)hci.getBeh().firstElement();
}
}
count = 0; // this will be the class reference number
hci = null; // don't update hci table
break;
}
default:
System.err.println("Invalid file type in htmlTagBeg()");
return;
}
// update the class name table
if(hci != null)
hash.put(src, hci); // replace with update class index entry
// place a name tag at this location for a reference
out.print("<A NAME=\"" + src + count + "\">"); // name tag unique
// reference class index in reference file
out.print("<A HREF=\"" + (type == JAVA ? "../" : "") + Program.getReferFile() + "#" + src + "\"");
// hyperlink other files
if(!otherfile.equals("") && (index >= 0)) {
out.print(" onClick=\"top.frames[" + (index + Program.cdframeoffset)
+ "].location='" + otherfile + Program.htmlext + "#" + src + "0';");
onclick = true;
}
if(!otherfile2.equals("") && (index2 >= 0)) {
if(!onclick)
out.print(" onClick=\"");
out.print("top.frames[" + (index2 + Program.cdframeoffset)
+ "].location='" + otherfile2 + Program.htmlext + "#" + src + "0';");
onclick = true;
}
if(onclick)
out.print("return true;\"");
out.print(">");
}
/** end of HTML anchor */
public void htmlTagEnd() { out.print("</A>"); }
/** HTML special characters need to be converted when they occur in text/code
or browser will think they are a tag or get confused.
*/
private String htmlConvertSpecialChar(String s) {
String ret = "";
try {
StringReader r = new StringReader(s);
StringWriter w = new StringWriter();
int ch;
while((ch = r.read()) >= 0) {
switch(ch) {
case '<':
w.write("<");
break;
case '>':
w.write(">");
break;
case '&':
w.write("&");
break;
case '"':
w.write(""");
break;
default:
w.write(ch);
break;
}
}
r.close();
ret = w.toString();
w.close();
} catch (IOException exc) {
System.err.println("StringReader/Writer Exception");
}
return ret;
}
@)
private void space()(@
if (needSpace) out.print(" ");
needSpace = false;
@)
after-> Program, pkg, Package (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
@)
after-> Program, imports, Import_SList (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
@)
after-> Program, preamble, Preamble (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
@)
before-> Package, packagename, PackageName (@
space();
out.print("package");
needSpace = true;
@)
after-> Package, packagename, PackageName (@
out.print(";");
needSpace = false;
@)
before-> Import, packagename, PackageName (@
space();
out.print("import");
needSpace = true;
@)
after Import (@
out.print(";");
needSpace = false;
@)
before ImportAllClasses (@
out.print(".*");
needSpace = false;
@)
before-> ClassGraph, defdict, Hashtable (@
space();
out.print(source.get_defdict());
needSpace = true;
@)
before-> ClassGraph, tg, TraversalGraph (@
space();
out.print("tg:");
needSpace = false;
space();
out.print(source.get_tg());
needSpace = true;
@)
before DoParse (@
out.print("*parse*");
needSpace = false;
@)
before DontParse (@
out.print("*noparse*");
needSpace = false;
@)
before BeginVisitors (@
out.print("*visitors*");
needSpace = false;
@)
before EndVisitors (@
out.print("*endvisitors*");
needSpace = false;
@)
before-> ClassDef, parsedirective, ParseDirective (@
out.print(" ");
needSpace = false;
@)
before-> ClassDef, classparts, ClassParts (@
out.print(" ");
needSpace = false;
@)
before-> ClassDef, eoftoken, EOFtoken (@
out.print(" ");
needSpace = false;
@)
after ClassDef (@
out.print(".");
needSpace = false;
@)
before PublicClass (@
out.print("*public*");
needSpace = false;
@)
before FinalClass (@
out.print("*final*");
needSpace = false;
@)
before InterfaceClass (@
out.print("*interface*");
needSpace = false;
@)
before VisitorClass (@
out.print("*visitor*");
needSpace = false;
@)
before NotParsedClass (@
out.print("*notparsed*");
needSpace = false;
@)
before-> ParamClassName, parameters, ClassName_Commalist (@
out.print("(");
needSpace = false;
@)
after-> ParamClassName, parameters, ClassName_Commalist (@
out.print(")");
needSpace = false;
@)
before-> ConstOrAltClass, parts, PartOrSyntax_List (@
out.print("\t");
indent++;
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
@)
after-> ConstOrAltClass, parents, ClassParents (@
indent--;
indent--;
indent--;
@)
before-> Part, partname, PartName (@
out.print("<");
needSpace = false;
@)
after-> Part, partname, PartName (@
out.print(">");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before FinalPart (@
out.print("*final*");
needSpace = false;
@)
before StaticPart (@
out.print("*static*");
needSpace = false;
@)
before ReadOnlyPart (@
out.print("*read-only*");
needSpace = false;
@)
before PrivatePart (@
out.print("*private*");
needSpace = false;
@)
before DerivedPart (@
out.print("*derived*");
needSpace = false;
@)
before-> PartInit, javacode, JavaCode (@
out.print("*init*");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before OptionalPart (@
out.print("[");
needSpace = false;
@)
after-> OptionalPart, part, Part_Sandwich (@
out.print("]");
needSpace = false;
@)
before-> ClassParents, superclasses, Superclass_Commalist (@
out.print(" ");
needSpace = false;
out.print("*extends*");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> ClassParents, interfaces, Interface_Commalist (@
out.print(" ");
needSpace = false;
out.print("*implements*");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before ConstructionClass (@
out.print("=");
needSpace = false;
@)
before AlternationClass (@
out.print(":");
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
@)
after-> AlternationClass, subclasses, Subclass_Barlist (@
indent--;
indent--;
indent--;
@)
before Common (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
out.print("*common*");
needSpace = false;
indent--;
indent--;
indent--;
@)
before-> LocalLookahead, javacode, JavaCode (@
out.print("*lookahead*");
needSpace = false;
@)
before-> RepetitionClass, sandwiched, RepeatedPart_Sandwich (@
out.print("~");
needSpace = false;
@)
after-> RepeatedPart, nonempty, ClassSpec (@
out.print("{");
needSpace = false;
@)
after-> RepeatedPart, repeated, ClassSpec_Sandwich (@
out.print(" ");
needSpace = false;
out.print("}");
needSpace = false;
@)
before-> ClassSpec, actual_parameters, ClassSpec_Commalist (@
out.print("(");
needSpace = false;
@)
after-> ClassSpec, actual_parameters, ClassSpec_Commalist (@
out.print(")");
needSpace = false;
@)
before-> PlainSyntax, string, String (@
space();
out.print("\"" + source.get_string() + "\"");
needSpace = true;
@)
before PrintIndent (@
out.print("+");
needSpace = false;
@)
before PrintUnindent (@
out.print("-");
needSpace = false;
@)
before PrintSkip (@
out.print("*l");
needSpace = true;
@)
before PrintSpace (@
out.print("*s");
needSpace = true;
@)
before EOFtoken (@
out.print("*EOF*");
needSpace = false;
@)
before-> StrategyDefinition, strategyname, StrategyName (@
space();
out.print("strategy");
needSpace = true;
@)
before-> StrategyDefinition, exp, StrategyExpression (@
out.print("=");
needSpace = false;
@)
after-> StrategyDefinition, exp, StrategyExpression (@
out.print(".");
needSpace = false;
@)
before StrategyGraph (@
out.print("{");
needSpace = false;
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
@)
before-> StrategyGraph, edgeVec, Vector (@
space();
out.print("vec:");
needSpace = false;
out.print(" ");
needSpace = false;
space();
out.print(source.get_edgeVec());
needSpace = true;
@)
after-> StrategyGraph, edges, SGEdge_SList (@
indent--;
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.print("}");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> StrategyGraph, sources, ClassGlobSpec (@
space();
out.print("source:");
needSpace = false;
@)
before-> StrategyGraph, sourceEdges, Integer_NList (@
space();
out.print("source-edge:");
needSpace = false;
@)
before-> StrategyGraph, targets, ClassGlobSpec (@
space();
out.print("target:");
needSpace = false;
@)
before-> SGEdge, dest, ClassGlobSpec (@
out.print(" ");
needSpace = false;
out.print("->");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before Through (@
space();
out.print("through");
needSpace = true;
@)
before Via (@
space();
out.print("via");
needSpace = true;
@)
before Bypassing (@
space();
out.print("bypassing");
needSpace = true;
@)
before OnlyThrough (@
space();
out.print("only-through");
needSpace = true;
@)
before To (@
space();
out.print("to");
needSpace = true;
@)
before ToStop (@
space();
out.print("to-stop");
needSpace = true;
@)
before-> StrategyVariable, strategyname, StrategyName (@
space();
out.print("do");
needSpace = true;
@)
before-> CompoundStrategy, args, StrategyExpression_Commalist (@
out.print("(");
needSpace = false;
@)
after-> CompoundStrategy, args, StrategyExpression_Commalist (@
out.print(")");
needSpace = false;
@)
before Join (@
space();
out.print("join");
needSpace = true;
@)
before Merge (@
space();
out.print("merge");
needSpace = true;
@)
before Intersect (@
space();
out.print("intersect");
needSpace = true;
@)
before GlobSet (@
out.print("{");
needSpace = false;
out.print(" ");
needSpace = false;
@)
after-> GlobSet, globs, Glob_Commalist (@
out.print(" ");
needSpace = false;
@)
after GlobSet (@
out.print("}");
needSpace = false;
@)
before-> PartGlob, source, SourceGlob (@
out.print("->");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> PartGlob, name, PartNameGlob (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> PartGlob, dest, DestGlob (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> SubclassGlob, source, SourceGlob (@
out.print("=>");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> SubclassGlob, dest, DestGlob (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> SuperclassGlob, source, SourceGlob (@
out.print(":>");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> SuperclassGlob, dest, DestGlob (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before AnyClass (@
out.print("*");
needSpace = false;
@)
before AnyPart (@
out.print("*");
needSpace = false;
@)
before-> ClassGlobSet, globs, ClassGlob_Commalist (@
out.print("{");
needSpace = false;
out.print(" ");
needSpace = false;
@)
after-> ClassGlobSet, globs, ClassGlob_Commalist (@
out.print(" ");
needSpace = false;
out.print("}");
needSpace = false;
@)
before ClassMethods (@
out.print("{");
needSpace = false;
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
@)
after-> ClassMethods, methods, Method_SList (@
indent--;
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.print("}");
needSpace = false;
@)
before-> ClassMethods, wrapperdict, Hashtable (@
space();
out.print("wrappers:");
needSpace = false;
space();
out.print(source.get_wrapperdict());
needSpace = true;
@)
before-> HostSet, exactHosts, Hashtable (@
space();
out.print("exact:");
needSpace = false;
space();
out.print(source.get_exactHosts());
needSpace = true;
@)
before-> HostSet, partnames, Hashtable (@
space();
out.print("partnames:");
needSpace = false;
space();
out.print(source.get_partnames());
needSpace = true;
@)
before-> HostSet, globs, GlobSet (@
space();
out.print("globs:");
needSpace = false;
@)
before-> TraversalDef, name, TraversalName (@
space();
out.print("traversal");
needSpace = true;
@)
before-> TraversalDef, strat, StrategyExpression (@
out.print(" ");
needSpace = false;
out.print("{");
needSpace = false;
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.print("\t");
indent++;
needSpace = false;
@)
after-> TraversalDef, strat, StrategyExpression (@
out.print(";");
needSpace = false;
indent--;
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.print("}");
needSpace = false;
@)
before TraversalParms (@
out.print("(");
needSpace = false;
@)
after TraversalParms (@
out.print(")");
needSpace = false;
@)
after-> MethodSignature, name, MethodName (@
out.print("(");
needSpace = false;
@)
after MethodSignature (@
out.print(")");
needSpace = false;
@)
before PublicMethod (@
space();
out.print("public");
needSpace = true;
@)
before ProtectedMethod (@
space();
out.print("protected");
needSpace = true;
@)
before PrivateMethod (@
space();
out.print("private");
needSpace = true;
@)
before StaticMethod (@
space();
out.print("static");
needSpace = true;
@)
before FinalMethod (@
space();
out.print("final");
needSpace = true;
@)
before AbstractMethod (@
space();
out.print("abstract");
needSpace = true;
@)
before ArraySpec (@
out.print("[");
needSpace = false;
out.print("]");
needSpace = false;
@)
before NoMethodBody (@
out.print(";");
needSpace = false;
@)
before Equals (@
out.print("=");
needSpace = false;
@)
before-> WithVisitorRef, visitorClasses, ClassName_Commalist (@
space();
out.print("with");
needSpace = true;
@)
after-> WithVisitorRef, visitorClasses, ClassName_Commalist (@
out.print(";");
needSpace = false;
@)
before-> ParenVisitorRef, visitorClasses, ClassName_Commalist (@
out.print("(");
needSpace = false;
@)
after-> ParenVisitorRef, visitorClasses, ClassName_Commalist (@
out.print(")");
needSpace = false;
out.print(";");
needSpace = false;
@)
before Before (@
space();
out.print("before");
needSpace = true;
@)
before Around (@
space();
out.print("around");
needSpace = true;
@)
before After (@
space();
out.print("after");
needSpace = true;
@)
before Getter (@
space();
out.print("get");
needSpace = true;
@)
before Setter (@
space();
out.print("set");
needSpace = true;
@)
before-> Constructor, javacode, JavaCode (@
space();
out.print("init");
needSpace = true;
@)
before ReturnValue (@
space();
out.print("return");
needSpace = true;
@)
before-> ClassName, name, Name (@
if(!source.isBuiltinType() && !source.isTerminalClass())
{
space();
htmlTagBeg(source.get_name().toString());
needSpace = false;
}
@)
after-> ClassName, name, Name (@
if(!source.isBuiltinType() && !source.isTerminalClass())
htmlTagEnd();
@)
before-> PartName, name, Ident (@
space();
out.print(source.get_name());
needSpace = true;
@)
before-> MethodName, name, Ident (@
space();
out.print(source.get_name());
needSpace = true;
@)
before-> ParmName, name, Ident (@
space();
out.print(source.get_name());
needSpace = true;
@)
before-> StrategyName, name, Ident (@
space();
out.print(source.get_name());
needSpace = true;
@)
before-> JavaCode, code, Text (@
space();
out.print("(@" + htmlConvertSpecialChar(source.get_code().toString()) + "@" + ")");
needSpace = true;
@)
before-> ClassType, is_con, boolean (@
space();
out.print(source.get_is_con());
needSpace = true;
@)
before-> ClassType, is_alt, boolean (@
space();
out.print(source.get_is_alt());
needSpace = true;
@)
before-> ClassType, is_rep, boolean (@
space();
out.print(source.get_is_rep());
needSpace = true;
@)
before-> ClassType, is_public, boolean (@
space();
out.print(source.get_is_public());
needSpace = true;
@)
before-> ClassType, is_final, boolean (@
space();
out.print(source.get_is_final());
needSpace = true;
@)
before-> ClassType, is_interface, boolean (@
space();
out.print(source.get_is_interface());
needSpace = true;
@)
before-> ClassType, is_not_parsed, boolean (@
space();
out.print(source.get_is_not_parsed());
needSpace = true;
@)
before-> ClassType, is_visitor, boolean (@
space();
out.print(source.get_is_visitor());
needSpace = true;
@)
before-> PartType, is_final, boolean (@
space();
out.print(source.get_is_final());
needSpace = true;
@)
before-> PartType, is_static, boolean (@
space();
out.print(source.get_is_static());
needSpace = true;
@)
before-> PartType, is_derived, boolean (@
space();
out.print(source.get_is_derived());
needSpace = true;
@)
before-> PartType, has_getter, boolean (@
space();
out.print(source.get_has_getter());
needSpace = true;
@)
before-> PartType, has_setter, boolean (@
space();
out.print(source.get_has_setter());
needSpace = true;
@)
before-> ConstructionRuleGenerator, opt, boolean (@
space();
out.print(source.get_opt());
needSpace = true;
@)
before-> ConstructionRuleGenerator, constr, boolean (@
space();
out.print(source.get_constr());
needSpace = true;
@)
before-> GlobMatcher, found_one, boolean (@
space();
out.print(source.get_found_one());
needSpace = true;
@)
before-> SGEdgeMatcher, c, ClassNameI (@
space();
out.print(source.get_c());
needSpace = true;
@)
before-> SGEdgeMatcher, index, int (@
space();
out.print(source.get_index());
needSpace = true;
@)
before-> SGEdgeMatcher, return_val, Vector (@
space();
out.print(source.get_return_val());
needSpace = true;
@)
before-> WrapperCallGenerator, cont, String (@
space();
out.print("\"" + source.get_cont() + "\"");
needSpace = true;
@)
before-> WrapperCallGenerator, indent, boolean (@
space();
out.print(source.get_indent());
needSpace = true;
@)
before-> WrapperCallGenerator, return_val, String (@
space();
out.print("\"" + source.get_return_val() + "\"");
needSpace = true;
@)
before-> WrapperCodeGenerator, code, Text (@
space();
out.print("(@" + htmlConvertSpecialChar(source.get_code().toString()) + "@" + ")");
needSpace = true;
@)
before-> PartGetter, isPart, boolean (@
space();
out.print(source.get_isPart());
needSpace = true;
@)
before-> TGVertexCollector, tg, TraversalGraph (@
space();
out.print(source.get_tg());
needSpace = true;
@)
before-> HtmlVisitor, indent, int (@
space();
out.print(source.get_indent());
needSpace = true;
@)
before-> HtmlVisitor, needSpace, boolean (@
space();
out.print(source.get_needSpace());
needSpace = true;
@)
before-> FindVisitorTargetsV, btargets, Vector (@
space();
out.print(source.get_btargets());
needSpace = true;
@)
before-> FindVisitorTargetsV, atargets, Vector (@
space();
out.print(source.get_atargets());
needSpace = true;
@)
before-> FindVisitorTargetsV, aroundtargets, Vector (@
space();
out.print(source.get_aroundtargets());
needSpace = true;
@)
before-> FindVisitorTargetsV, visitorname, String (@
space();
out.print("\"" + source.get_visitorname() + "\"");
needSpace = true;
@)
before-> FindVisitorTargetsV, doing, Vector (@
space();
out.print(source.get_doing());
needSpace = true;
@)
before-> CreateMethodsV, baseclassname, String (@
space();
out.print("\"" + source.get_baseclassname() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, classname, String (@
space();
out.print("\"" + source.get_classname() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, btargets, Vector (@
space();
out.print(source.get_btargets());
needSpace = true;
@)
before-> CreateMethodsV, atargets, Vector (@
space();
out.print(source.get_atargets());
needSpace = true;
@)
before-> CreateMethodsV, aroundtargets, Vector (@
space();
out.print(source.get_aroundtargets());
needSpace = true;
@)
before-> CreateMethodsV, abort, boolean (@
space();
out.print(source.get_abort());
needSpace = true;
@)
before-> CreateMethodsV, doneclasses, Vector (@
space();
out.print(source.get_doneclasses());
needSpace = true;
@)
before-> CreateMethodsV, makeprotoparts, String (@
space();
out.print("\"" + source.get_makeprotoparts() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, makeprotosubclasses, String (@
space();
out.print("\"" + source.get_makeprotosubclasses() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, makeprotomain, String (@
space();
out.print("\"" + source.get_makeprotomain() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, pathtravmain, String (@
space();
out.print("\"" + source.get_pathtravmain() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, traverseparts, String (@
space();
out.print("\"" + source.get_traverseparts() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, traversesubclasses, String (@
space();
out.print("\"" + source.get_traversesubclasses() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, partcounter, int (@
space();
out.print(source.get_partcounter());
needSpace = true;
@)
before-> CreateMethodsV, subclasscounter, int (@
space();
out.print(source.get_subclasscounter());
needSpace = true;
@)
before-> CreateMethodsV, optionalpart, boolean (@
space();
out.print(source.get_optionalpart());
needSpace = true;
@)
before-> CreateMethodsV, partsdone, Vector (@
space();
out.print(source.get_partsdone());
needSpace = true;
@)
before-> CreateMethodsV, graphstr, String (@
space();
out.print("\"" + source.get_graphstr() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, partstr, String (@
space();
out.print("\"" + source.get_partstr() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, subclassstr, String (@
space();
out.print("\"" + source.get_subclassstr() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, visitorstr, String (@
space();
out.print("\"" + source.get_visitorstr() + "\"");
needSpace = true;
@)
before-> CreateMethodsV, hierarchy, Vector (@
space();
out.print(source.get_hierarchy());
needSpace = true;
@)
before-> PrintVisitor, indent, int (@
space();
out.print(source.get_indent());
needSpace = true;
@)
before-> PrintVisitor, needSpace, boolean (@
space();
out.print(source.get_needSpace());
needSpace = true;
@)
before-> EqualVisitor, is_equal, boolean (@
space();
out.print(source.get_is_equal());
needSpace = true;
@)
before-> DisplayVisitor, indent, int (@
space();
out.print(source.get_indent());
needSpace = true;
@)
before-> TraceVisitor, indent, int (@
space();
out.print(source.get_indent());
needSpace = true;
@)
after-> ClassGraphEntry_DList, first, Nonempty_ClassGraphEntry_DList (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
@)
before-> Part_Sandwich, inner, Part (@
out.print(" ");
needSpace = false;
@)
before-> RepeatedPart_Sandwich, inner, RepeatedPart (@
out.print(" ");
needSpace = false;
@)
before-> ClassSpec_Sandwich, inner, ClassSpec (@
out.print(" ");
needSpace = false;
@)
after-> Behavior_DList, first, Nonempty_Behavior_DList (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
@)
before-> Nonempty_PackageName, it, Ident (@
space();
out.print(source.get_it());
needSpace = true;
@)
before-> Nonempty_PackageName, next, Nonempty_PackageName (@
out.print(".");
needSpace = false;
@)
before-> Nonempty_Name, it, Ident (@
space();
out.print(source.get_it());
needSpace = true;
@)
before-> Nonempty_Name, next, Nonempty_Name (@
out.print(".");
needSpace = false;
@)
before-> Nonempty_Import_SList, next, Nonempty_Import_SList (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
@)
before-> Nonempty_ClassGraphEntry_DList, next, Nonempty_ClassGraphEntry_DList (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
@)
before-> Nonempty_ClassKeyword_List, next, Nonempty_ClassKeyword_List (@
out.print(" ");
needSpace = false;
@)
before-> Nonempty_ClassName_Commalist, next, Nonempty_ClassName_Commalist (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> Nonempty_PartOrSyntax_List, next, Nonempty_PartOrSyntax_List (@
out.print(" ");
needSpace = false;
@)
before-> Nonempty_PartKeyword_List, next, Nonempty_PartKeyword_List (@
out.print(" ");
needSpace = false;
@)
before-> Nonempty_Superclass_Commalist, next, Nonempty_Superclass_Commalist (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> Nonempty_Interface_Commalist, next, Nonempty_Interface_Commalist (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> Nonempty_Subclass_Barlist, next, Nonempty_Subclass_Barlist (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.print("|");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> Nonempty_Syntax_List, next, Nonempty_Syntax_List (@
out.print(" ");
needSpace = false;
@)
before-> Nonempty_ClassSpec_Commalist, next, Nonempty_ClassSpec_Commalist (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> Nonempty_Behavior_DList, next, Nonempty_Behavior_DList (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
@)
before-> Nonempty_SGEdge_SList, next, Nonempty_SGEdge_SList (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
@)
before-> Nonempty_Integer_NList, it, Integer (@
space();
out.print(source.get_it());
needSpace = true;
@)
before-> Nonempty_Integer_NList, next, Nonempty_Integer_NList (@
out.print(" ");
needSpace = false;
@)
before-> Nonempty_PathSegment_List, next, Nonempty_PathSegment_List (@
out.print(" ");
needSpace = false;
@)
before-> Nonempty_StrategyExpression_Commalist, next, Nonempty_StrategyExpression_Commalist (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> Nonempty_Glob_Commalist, next, Nonempty_Glob_Commalist (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> Nonempty_ClassGlob_Commalist, next, Nonempty_ClassGlob_Commalist (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> Nonempty_Method_SList, next, Nonempty_Method_SList (@
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
@)
before-> Nonempty_Visitor_Commalist, next, Nonempty_Visitor_Commalist (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> Nonempty_MethodKeyword_List, next, Nonempty_MethodKeyword_List (@
out.print(" ");
needSpace = false;
@)
before-> Nonempty_MethodParm_Commalist, next, Nonempty_MethodParm_Commalist (@
out.print(",");
needSpace = false;
out.print(" ");
needSpace = false;
@)
before-> Nonempty_ArraySpec_List, next, Nonempty_ArraySpec_List (@
out.print(" ");
needSpace = false;
@)
}