1

我想从 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 语言应为:

<HTML> 
<PRE>
<A HREF="DIRECTORY_1/">DIRECTORY_1/</A>         10.10.10  12:00   -
<A HREF="DIRECTORY_2/">DIRECTORY_2/</A>         10.09.27  14:35   -
<A HREF="FILE.DOC">FILE.DOC</A>        99.11.27  01:00   423k
<A HREF="FILE_2.PDF">FILE_2.PDF</A>       98.12.25  07:00   783k
<A HREF="README">README</A>               02.03.14  02:59   3k
</PRE>
</HTML>

我如何将一个代码解析为另一个?并将 html 代码保存到文件中。

4

0 回答 0