将java代码生成html并且高亮显示
2005-07-05 17:53
966 查看
import java.util.*;
import java.io.*;
public class java2html
{
private static boolean comment=false;
private static boolean lineComment=false;
private static boolean START = true;
private static boolean END = false;
private static boolean backslash=false;
private static boolean stringlit = false;
private static boolean stringlit2 = false;
private static int tabWidth = 0;
private static String tab=" ";
private static Collection varList = new ArrayList();
private static StringBuffer out = new StringBuffer();
private static Collection primitives = new ArrayList();
static
{
String[] primString =
{"int","Integer", "byte","Byte", "boolean","Boolean", "short", "Short", "long", "Long", "char", "Character", "float", "Float", "double", "Double", "String", "void","StringBuffer","Collection"};
for(int i=0; i<primString.length; i++)
primitives.add(primString[i]);
}
private static Collection operators = new ArrayList();
static
{
String[] operString =
{"=", ">", "<", "!", "~", "?", ":", "==", "<=", ">=", "!=", "&&", "||", "++", "--", "+", "-", "*", "/", "&", "|", "^", "%", ">>", "<<", ">>>", "+=", "-=", "*=", "/=", "&=", "|=", "^=", "%=", "<<=", ">>=", "<<<"};
for(int i=0; i<operString.length; i++)
operators.add(operString[i]);
}
private static Collection string = new ArrayList();
static
{
String[] stringString =
{"/""};
for(int i=0; i<stringString.length; i++)
string.add(stringString[i]);
}
private static Collection flow = new ArrayList();
static
{
String[] flowString =
{"true" , "false" , "null" , "import"};
for(int i=0; i<flowString.length; i++)
flow.add(flowString[i]);
}
private static Collection resWords = new ArrayList();
static
{
String[] reswString =
{"private", "static", "new", "public", "final", "class", "this", "synchronized", "native", "package", "if", "then", "else", "finally", "switch", "do", "while", "case", "default", "return", "break", "continue", "throw", "throws", "catch", "try", "for","protected"};
for(int i=0; i<reswString.length; i++)
resWords.add(reswString[i]);
}
private static void java2html(String fileName)
{ }
public static void tabIncrease(boolean up)
{
//prComment(START);out.append("tabs");prComment(END);
if(up)
{
tabWidth++;
} else
{
tabWidth--;
}
tab=" ";
for(int i=tabWidth; i>0; i--)
{
tab = tab+" ";
}
}
public static void prTitle(String str)
{
out.append("<TITLE>" + str + "</TITLE>");
out.append("/n");
}
public static void prPrimitive(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<b><FONT color=red>" + str + "</FONT></b>");
out.append("/n");
}
}
public static void prVar(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<FONT color=red>" + str + "</FONT>");
out.append("/n");
}
}
public static void prFlow(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<b><FONT color=black>" + str + "</FONT></b>");
out.append("/n");
}
}
public static void prResWord(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<b><FONT color=black>" + str + "</FONT></b>");
out.append("/n");
}
}
public static void prNormal(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append(str);
out.append("/n");
}
}
public static void prJComment(String str)
{
out.append("<FONT color=#888888>" + str + "</FONT>");
out.append("/n");
}
public static void prOperator(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<FONT color=black>" + str + "</FONT>/n");
}
}
public static void prNumber(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<FONT color=blue>" + str + "</FONT>/n");
}
}
public static void prStringLit(String str)
{
out.append(str +"/n");
}
public static void prHead(boolean start)
{
if(start)
{
out.append("<HEAD>");
out.append("/n");
} else
{
out.append("</HEAD>");
out.append("/n");
}
}
public static void prBody(boolean start)
{
if (start)
{
out.append("<BODY bgcolor=white color=red>");
out.append("/n");
out.append("<tt><FONT color=red>");
out.append("/n");
} else
{
out.append("</FONT></tt>");
out.append("/n");
out.append("</BODY>");
out.append("/n");
}
}
public static void prComment(boolean start)
{
if(start)
{
out.append("<!--");
out.append("/n");
} else
{
out.append("-->");
out.append("/n");
}
}
public static void prHtml(boolean start)
{
if(start)
{
out.append("<HTML>");
out.append("/n"); } else
{
out.append("</HTML>");
out.append("/n");
}
}
public static void prBr(boolean start)
{
if(start)
{
out.append("<BR>");
out.append("/n");
} else
{
out.append("<BR>");
out.append("/n");
}
out.append(tab);
}
public static void prP(boolean start)
{
if(start)
{
out.append("<P>");
out.append("/n");
} else
{
out.append("</P>");
out.append("/n");
}
}
public static void prTable(boolean start)
{
if(start)
{
out.append("<TABLE>");
out.append("/n");
} else
{
out.append("</TABLE>");
out.append("/n");
}
}
public static void prTr(boolean start)
{
if(start)
{
out.append("<TR>");
out.append("/n");
} else
{
out.append("</TR>");
out.append("/n");
}
}
public static void prTd(boolean start)
{
if(start)
{
out.append("<TD>");
out.append("/n");
} else
{
out.append("</TD>");
out.append("/n");
}
}
public static void prStringOne(boolean start)
{
if (comment || lineComment)
{
prJComment("/'");
} else if(start)
{
out.append("<FONT color=green>/'/n");
stringlit=true;
} else
{
out.append("/'</FONT>/n");
stringlit=false;
}
}
public static void prStringTwo(boolean start)
{
if (comment || lineComment)
{
prJComment("/"");
} else if(start)
{
out.append("<FONT color=green>/"/n");
stringlit=true;
stringlit2=true;
} else
{
out.append("/"</FONT>/n");
stringlit=false;
stringlit2=false;
}
}
public static void main(String[] args)
{
if (args.length<2)
{
System.out.println("/n错误:参数不足!");
System.out.println("java2html [源文件] [将生成文件名]");
}
else
{
FileInputStream file;
StreamTokenizer st;
String htmlFile = args[1];
boolean isVar=false;
putHtml puthtml = new putHtml();
boolean firstOfComment=false;
int b = 8;
int a = 10 / b;
try
{
file = new FileInputStream(args[0]);
Reader r = new BufferedReader(new InputStreamReader(file));
st = new StreamTokenizer(r);
st.eolIsSignificant(true);
st.ordinaryChar('/"');
st.ordinaryChar('/');
st.ordinaryChar('//');
st.ordinaryChar('.');
st.ordinaryChar('/'');
prHtml(START);
prHead(START);
prTitle(args[0]);
prHead(END);
prBody(START);
while(st.nextToken() != StreamTokenizer.TT_EOF)
{
switch(st.ttype)
{
case StreamTokenizer.TT_WORD:
if(firstOfComment)
{
if((!comment && !lineComment)) prOperator("/");
}
firstOfComment=false;
if(primitives.contains(st.sval))
{
prPrimitive(st.sval);
isVar=true;
backslash=false;
break;
}
if(flow.contains(st.sval))
{
isVar=false;
prNumber(st.sval);
backslash=false;
break;
}
if(resWords.contains(st.sval))
{
isVar=false;
prResWord(st.sval);
backslash=false;
break;
}
if(varList.contains(st.sval))
{
isVar=false;
prVar(st.sval);
backslash=false;
break;
}
if(isVar && !(varList.contains(st.sval)))
{
varList.add(st.sval);
prVar(st.sval);
} else
{
prNormal(st.sval);
}
backslash=false;
break;
case StreamTokenizer.TT_EOL:
isVar=false;
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
firstOfComment=false;
lineComment=false;
prBr(START);
backslash=false;
break;
case StreamTokenizer.TT_NUMBER:
isVar=false;
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
firstOfComment=false;
if(String.valueOf((char)st.ttype).equals("."))
{
prFlow(".");
backslash=false;
break;
}
prNumber(new Double(st.nval).toString());
backslash=false;
break;
default:
isVar=false;
if(operators.contains(String.valueOf((char)st.ttype)))
{
if (firstOfComment)
{
if (comment)
{
//there has been a star, waiting for slash
if (String.valueOf((char)st.ttype).equals("/"))
{
firstOfComment=false;
prJComment("*/");
comment=false;
backslash=false;
firstOfComment=false;
break;
} else firstOfComment=false;
} else
{
//there has been a slash, waiting for slash or star
if (String.valueOf((char)st.ttype).equals("/"))
{
if (!stringlit)
{
lineComment=true;
prJComment("//");
} else
{
lineComment=false;
prNormal("//");
}
firstOfComment=false;
comment=false;
backslash=false;
break;
} else if (String.valueOf((char)st.ttype).equals("*"))
{
if (!stringlit)
{
comment=true;
prJComment("/*");
} else
{
comment=false;
prNormal("/*");
}
firstOfComment=false;
lineComment=false;
backslash=false;
break;
} else
{
firstOfComment=false;
if (!lineComment) prOperator("/");
prOperator(String.valueOf((char)st.ttype));
backslash=false;
break;
}
}
} else
{
if (comment)
{
//waiting for star
if (String.valueOf((char)st.ttype).equals("*"))
{
firstOfComment=true;
backslash=false;
break;
} else firstOfComment=false;
} else
{
//waiting for slash
if (String.valueOf((char)st.ttype).equals("/"))
{
firstOfComment=true;
backslash=false;
break;
} else
{
firstOfComment=false;
prOperator(String.valueOf((char)st.ttype));
backslash=false;
break;
}
}
}
}
if(String.valueOf((char)st.ttype).equals("/""))
{
if(firstOfComment)
{
if (!(comment || lineComment)) prOperator("/");
firstOfComment=false;
}
if (!backslash) prStringTwo(!stringlit);
else prNormal("/"");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("//"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prNormal("//");
backslash=!backslash;
break;
}
if(String.valueOf((char)st.ttype).equals("/'"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
if (!backslash && !stringlit2) prStringOne(!stringlit);
else prNormal("/'");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals(";"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow(";");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals(","))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow(",");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("."))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow(".");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals(")"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow(")");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("("))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow("(");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("]"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow("]");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("["))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow("[");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("{"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
tabIncrease(true);
prFlow("{");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("}"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
tabIncrease(false);
if (out.substring(out.length()-24).equals(" "))
{
out.delete(out.length()-24,out.length());
}
prFlow("}");
backslash=false;
break;
}
prNormal(String.valueOf((char)st.ttype));
backslash=false;
break;
}
}
prBody(END);
prHtml(END);
} catch (FileNotFoundException e)
{
System.out.println("Could not find the file: " + args[0]);
} catch (IOException e)
{
e.printStackTrace();
} catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("There is no input file");
}
if(puthtml.put(htmlFile,out.toString()))
{
System.out.println("成功生成"+htmlFile+"文件");
}
else
{
System.out.println("生成"+htmlFile+"文件失败");
}
}
}
}
class putHtml
{
boolean put(String fileName , String fileBody)
{
boolean returnMessage = false;
String file = fileName;
try
{
PrintWriter pw = new PrintWriter(new FileOutputStream(file));
pw.println(fileBody);
pw.close();
returnMessage = true ;
} catch(IOException e)
{
returnMessage = false;
}
return returnMessage;
}
}
import java.io.*;
public class java2html
{
private static boolean comment=false;
private static boolean lineComment=false;
private static boolean START = true;
private static boolean END = false;
private static boolean backslash=false;
private static boolean stringlit = false;
private static boolean stringlit2 = false;
private static int tabWidth = 0;
private static String tab=" ";
private static Collection varList = new ArrayList();
private static StringBuffer out = new StringBuffer();
private static Collection primitives = new ArrayList();
static
{
String[] primString =
{"int","Integer", "byte","Byte", "boolean","Boolean", "short", "Short", "long", "Long", "char", "Character", "float", "Float", "double", "Double", "String", "void","StringBuffer","Collection"};
for(int i=0; i<primString.length; i++)
primitives.add(primString[i]);
}
private static Collection operators = new ArrayList();
static
{
String[] operString =
{"=", ">", "<", "!", "~", "?", ":", "==", "<=", ">=", "!=", "&&", "||", "++", "--", "+", "-", "*", "/", "&", "|", "^", "%", ">>", "<<", ">>>", "+=", "-=", "*=", "/=", "&=", "|=", "^=", "%=", "<<=", ">>=", "<<<"};
for(int i=0; i<operString.length; i++)
operators.add(operString[i]);
}
private static Collection string = new ArrayList();
static
{
String[] stringString =
{"/""};
for(int i=0; i<stringString.length; i++)
string.add(stringString[i]);
}
private static Collection flow = new ArrayList();
static
{
String[] flowString =
{"true" , "false" , "null" , "import"};
for(int i=0; i<flowString.length; i++)
flow.add(flowString[i]);
}
private static Collection resWords = new ArrayList();
static
{
String[] reswString =
{"private", "static", "new", "public", "final", "class", "this", "synchronized", "native", "package", "if", "then", "else", "finally", "switch", "do", "while", "case", "default", "return", "break", "continue", "throw", "throws", "catch", "try", "for","protected"};
for(int i=0; i<reswString.length; i++)
resWords.add(reswString[i]);
}
private static void java2html(String fileName)
{ }
public static void tabIncrease(boolean up)
{
//prComment(START);out.append("tabs");prComment(END);
if(up)
{
tabWidth++;
} else
{
tabWidth--;
}
tab=" ";
for(int i=tabWidth; i>0; i--)
{
tab = tab+" ";
}
}
public static void prTitle(String str)
{
out.append("<TITLE>" + str + "</TITLE>");
out.append("/n");
}
public static void prPrimitive(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<b><FONT color=red>" + str + "</FONT></b>");
out.append("/n");
}
}
public static void prVar(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<FONT color=red>" + str + "</FONT>");
out.append("/n");
}
}
public static void prFlow(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<b><FONT color=black>" + str + "</FONT></b>");
out.append("/n");
}
}
public static void prResWord(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<b><FONT color=black>" + str + "</FONT></b>");
out.append("/n");
}
}
public static void prNormal(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append(str);
out.append("/n");
}
}
public static void prJComment(String str)
{
out.append("<FONT color=#888888>" + str + "</FONT>");
out.append("/n");
}
public static void prOperator(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<FONT color=black>" + str + "</FONT>/n");
}
}
public static void prNumber(String str)
{
if (comment || lineComment)
{
prJComment(str);
} else if (stringlit)
{
prStringLit(str);
} else
{
out.append("<FONT color=blue>" + str + "</FONT>/n");
}
}
public static void prStringLit(String str)
{
out.append(str +"/n");
}
public static void prHead(boolean start)
{
if(start)
{
out.append("<HEAD>");
out.append("/n");
} else
{
out.append("</HEAD>");
out.append("/n");
}
}
public static void prBody(boolean start)
{
if (start)
{
out.append("<BODY bgcolor=white color=red>");
out.append("/n");
out.append("<tt><FONT color=red>");
out.append("/n");
} else
{
out.append("</FONT></tt>");
out.append("/n");
out.append("</BODY>");
out.append("/n");
}
}
public static void prComment(boolean start)
{
if(start)
{
out.append("<!--");
out.append("/n");
} else
{
out.append("-->");
out.append("/n");
}
}
public static void prHtml(boolean start)
{
if(start)
{
out.append("<HTML>");
out.append("/n"); } else
{
out.append("</HTML>");
out.append("/n");
}
}
public static void prBr(boolean start)
{
if(start)
{
out.append("<BR>");
out.append("/n");
} else
{
out.append("<BR>");
out.append("/n");
}
out.append(tab);
}
public static void prP(boolean start)
{
if(start)
{
out.append("<P>");
out.append("/n");
} else
{
out.append("</P>");
out.append("/n");
}
}
public static void prTable(boolean start)
{
if(start)
{
out.append("<TABLE>");
out.append("/n");
} else
{
out.append("</TABLE>");
out.append("/n");
}
}
public static void prTr(boolean start)
{
if(start)
{
out.append("<TR>");
out.append("/n");
} else
{
out.append("</TR>");
out.append("/n");
}
}
public static void prTd(boolean start)
{
if(start)
{
out.append("<TD>");
out.append("/n");
} else
{
out.append("</TD>");
out.append("/n");
}
}
public static void prStringOne(boolean start)
{
if (comment || lineComment)
{
prJComment("/'");
} else if(start)
{
out.append("<FONT color=green>/'/n");
stringlit=true;
} else
{
out.append("/'</FONT>/n");
stringlit=false;
}
}
public static void prStringTwo(boolean start)
{
if (comment || lineComment)
{
prJComment("/"");
} else if(start)
{
out.append("<FONT color=green>/"/n");
stringlit=true;
stringlit2=true;
} else
{
out.append("/"</FONT>/n");
stringlit=false;
stringlit2=false;
}
}
public static void main(String[] args)
{
if (args.length<2)
{
System.out.println("/n错误:参数不足!");
System.out.println("java2html [源文件] [将生成文件名]");
}
else
{
FileInputStream file;
StreamTokenizer st;
String htmlFile = args[1];
boolean isVar=false;
putHtml puthtml = new putHtml();
boolean firstOfComment=false;
int b = 8;
int a = 10 / b;
try
{
file = new FileInputStream(args[0]);
Reader r = new BufferedReader(new InputStreamReader(file));
st = new StreamTokenizer(r);
st.eolIsSignificant(true);
st.ordinaryChar('/"');
st.ordinaryChar('/');
st.ordinaryChar('//');
st.ordinaryChar('.');
st.ordinaryChar('/'');
prHtml(START);
prHead(START);
prTitle(args[0]);
prHead(END);
prBody(START);
while(st.nextToken() != StreamTokenizer.TT_EOF)
{
switch(st.ttype)
{
case StreamTokenizer.TT_WORD:
if(firstOfComment)
{
if((!comment && !lineComment)) prOperator("/");
}
firstOfComment=false;
if(primitives.contains(st.sval))
{
prPrimitive(st.sval);
isVar=true;
backslash=false;
break;
}
if(flow.contains(st.sval))
{
isVar=false;
prNumber(st.sval);
backslash=false;
break;
}
if(resWords.contains(st.sval))
{
isVar=false;
prResWord(st.sval);
backslash=false;
break;
}
if(varList.contains(st.sval))
{
isVar=false;
prVar(st.sval);
backslash=false;
break;
}
if(isVar && !(varList.contains(st.sval)))
{
varList.add(st.sval);
prVar(st.sval);
} else
{
prNormal(st.sval);
}
backslash=false;
break;
case StreamTokenizer.TT_EOL:
isVar=false;
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
firstOfComment=false;
lineComment=false;
prBr(START);
backslash=false;
break;
case StreamTokenizer.TT_NUMBER:
isVar=false;
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
firstOfComment=false;
if(String.valueOf((char)st.ttype).equals("."))
{
prFlow(".");
backslash=false;
break;
}
prNumber(new Double(st.nval).toString());
backslash=false;
break;
default:
isVar=false;
if(operators.contains(String.valueOf((char)st.ttype)))
{
if (firstOfComment)
{
if (comment)
{
//there has been a star, waiting for slash
if (String.valueOf((char)st.ttype).equals("/"))
{
firstOfComment=false;
prJComment("*/");
comment=false;
backslash=false;
firstOfComment=false;
break;
} else firstOfComment=false;
} else
{
//there has been a slash, waiting for slash or star
if (String.valueOf((char)st.ttype).equals("/"))
{
if (!stringlit)
{
lineComment=true;
prJComment("//");
} else
{
lineComment=false;
prNormal("//");
}
firstOfComment=false;
comment=false;
backslash=false;
break;
} else if (String.valueOf((char)st.ttype).equals("*"))
{
if (!stringlit)
{
comment=true;
prJComment("/*");
} else
{
comment=false;
prNormal("/*");
}
firstOfComment=false;
lineComment=false;
backslash=false;
break;
} else
{
firstOfComment=false;
if (!lineComment) prOperator("/");
prOperator(String.valueOf((char)st.ttype));
backslash=false;
break;
}
}
} else
{
if (comment)
{
//waiting for star
if (String.valueOf((char)st.ttype).equals("*"))
{
firstOfComment=true;
backslash=false;
break;
} else firstOfComment=false;
} else
{
//waiting for slash
if (String.valueOf((char)st.ttype).equals("/"))
{
firstOfComment=true;
backslash=false;
break;
} else
{
firstOfComment=false;
prOperator(String.valueOf((char)st.ttype));
backslash=false;
break;
}
}
}
}
if(String.valueOf((char)st.ttype).equals("/""))
{
if(firstOfComment)
{
if (!(comment || lineComment)) prOperator("/");
firstOfComment=false;
}
if (!backslash) prStringTwo(!stringlit);
else prNormal("/"");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("//"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prNormal("//");
backslash=!backslash;
break;
}
if(String.valueOf((char)st.ttype).equals("/'"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
if (!backslash && !stringlit2) prStringOne(!stringlit);
else prNormal("/'");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals(";"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow(";");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals(","))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow(",");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("."))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow(".");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals(")"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow(")");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("("))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow("(");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("]"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow("]");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("["))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prFlow("[");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("{"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
tabIncrease(true);
prFlow("{");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals("}"))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
tabIncrease(false);
if (out.substring(out.length()-24).equals(" "))
{
out.delete(out.length()-24,out.length());
}
prFlow("}");
backslash=false;
break;
}
prNormal(String.valueOf((char)st.ttype));
backslash=false;
break;
}
}
prBody(END);
prHtml(END);
} catch (FileNotFoundException e)
{
System.out.println("Could not find the file: " + args[0]);
} catch (IOException e)
{
e.printStackTrace();
} catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("There is no input file");
}
if(puthtml.put(htmlFile,out.toString()))
{
System.out.println("成功生成"+htmlFile+"文件");
}
else
{
System.out.println("生成"+htmlFile+"文件失败");
}
}
}
}
class putHtml
{
boolean put(String fileName , String fileBody)
{
boolean returnMessage = false;
String file = fileName;
try
{
PrintWriter pw = new PrintWriter(new FileOutputStream(file));
pw.println(fileBody);
pw.close();
returnMessage = true ;
} catch(IOException e)
{
returnMessage = false;
}
return returnMessage;
}
}
相关文章推荐
- 将java代码生成html并且高亮显示
- 通过swagger2markup+asciidoctorj生成html和pdf文档并解决asciidoctorj生成的pdf文件中文显示不全问题(maven方式及java代码方式)
- 生成在blog中高亮+行号显示java代码的perl代码
- Java实现HTML代码生成PDF文档
- TextView加载html代码显示图片,并且支持图片放大功能
- Java实现HTML代码生成PDF文档
- PowerDesigner中JAVA代码直接生成类图以及设置Digram中Symbol的隐藏显示样式
- Java实现HTML代码生成PDF文档
- java lucene实现近实时搜索及高亮显示的代码例子下载
- 使用 highlight.js 在网页中高亮显示java 代码 【原】
- Ext Designer Preview生成代码在html上显示步骤
- java 生成静态html的一段代码
- java 生成静态html的一段代码
- freemarker生成的前端代码下使用javascript实现导航菜单高亮显示
- java将文档转换成html页面代码 (doc中的图片生成资源文件)
- java html内容生成word文件实现代码
- Java实现HTML代码生成PDF文档
- Java使用wkhtmltox实现HTML代码生成PDF文档或者图片
- tinyMCE插件开发之插入html,php,sql,js代码 并代码高亮显示
- Swing实现Java代码编辑器实现关键词高亮显示