ANTLR: AST, Java - PullRequest
       25

ANTLR: AST, Java

0 голосов
/ 06 октября 2011

Я пытаюсь сгенерировать AST после разбора HTML-файла.

grammar XHTML2CSV;

options {
    output=AST;
    ASTLabelType=CommonTree;
}

tokens {
    CELLULE;
    LIGNE;
    CELLULEG    =  '<td>';                                              
    CELLULED    =  '</td>';
    DEBUTCOL    =  '<tr>';
    FINCOL      =  '</tr>';
    DTAB        =  '<table';
    STAB        =  ' align=\"center\"';
    FTAB        =  ' border=\"1\">';
    FINTAB      ='</table>';                                


ligne 
    : DEBUTCOL cellule+ FINCOL -> ^(LIGNE cellule);

cellule : CELLULEG CHAINE CELLULED            
        -> ^(CELLULE CHAINE);   

А когда я разбираю что-то вроде:

  <tr>
    <td>"Cellule 1"</td>
    <td>"Cellule 2"</td>
    <td>"Cellule 3"</td>
  </tr>

Я просто получаю дерево: nil --> LIGNE ---> CELLULE ---> "Cellule 1"
Как мне сделать так, чтобы все дети LIGNE были в AST?
Спасибо

1 Ответ

1 голос
/ 06 октября 2011

Кажется, вы забыли + в своем правиле перезаписи:

ligne 
  :  DEBUTCOL cellule+ FINCOL -> ^(LIGNE cellule+)
  ;                                       //    ^
                                          //    |
                                          //    +--- ici!

К вашему сведению: на сайте ANTLR есть грамматика HTML: http://www.antlr.org/grammar/HTML

...