Я бы хотел перевести с языка dir / x / s на html.
У меня есть Analyzer.j:
PARSER_BEGIN(Analyzer)
import java.io.*;
public class Analyzer
{
public static void main(String args[]) throws ParseException,
FileNotFoundException
{
Analyzer analyzer;
try {
analyzer = new Analyzer(new FileInputStream(args[0]));
analyzer.Start();
} catch(ParseException pe) {
System.out.println(pe);
} catch(FileNotFoundException fe) {
System.out.println(fe);
}
}
}
PARSER_END(Analyzer)
SKIP :
{
" "
| "\t"
| "\r"
| "\n"
}
TOKEN:
{
<DIR: "<DIR>">
| <BYTES: "bytes">
| <DOTDOT: "..">
| <DOT: ".">
| <BACKSLASH: "\\">
| <COLON: ":">
| <DASH: "-">
| <SLASH: "/">
| <COMMA: ",">
| <INTEGER: (["0"-"9"])+>
| <STRING: (["a"-"z", "A"-"Z", "0"-"9"])+>
}
void Start():
{}
{
(ListLine())+
}
void Date():
{}
{
<INTEGER>[<DOT><INTEGER><DOT><INTEGER>]
}
void Time():
{}
{
<INTEGER><COLON><INTEGER>
}
void FileName():
{}
{
<STRING>[<DOT><STRING>]
}
void FileSize():
{}
{
<INTEGER>(<DOT><INTEGER>)*[<BYTES>]
}
void ListLine():
{}
{
Date() Time() (<DIR>|FileSize()) [(<DOT>|<DOTDOT>|FileName())]
}
Исходный код:
10.10.10 12:00 <DIR> DIRECTORY_1/
10.09.27 14:35 <DIR> DIRECTORY_2/
99.11.27 01:00 423k FILE.DOC
98.12.25 07:00 783k FILE_2.PDF
02.03.14 02:59 3k README
и результат на языке HTML должен быть:
DIRECTORY_1/ 10.10.10 12:00 -
DIRECTORY_2/ 10.09.27 14:35 -
FILE.DOC 99.11.27 01:00 423k
FILE_2.PDF 98.12.25 07:00 783k
README 02.03.14 02:59 3k
Как я могу разобрать один код в другой? И сохраните HTML-код в файл.