javacc, перевод с dir / x / s на HTML - PullRequest
1 голос
/ 10 декабря 2010

Я бы хотел перевести с языка 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-код в файл.

...