2014-05-13 37 views
0

所以我對JavaCC的功能:JavaCC的正則表達式,忽略一切,直到一個特定的字符串

void parseDSL() throws SemanticException #void : 
{} 
{ 
    <ALL> "/*@mat" dslStatements() "*/" <ALL> <EOF> 
} 

我的目標是,直到「/ * @席」比賽和之後的分析忽略了所有的事情,直到EOF無視一切。 我真的很努力地找到一個在這裏工作的正則表達式。 應通過的文件的一個示例是:

public class blabla { 
    int i=1;/*@mat 
    in float B[100]; 
    in float C[100]; 
    in int A[9]; 
    in int Z[9]; 
    out float D[]; 
    D=A*(B+C-Z)+A*Z; 
    */boolean a; 
} 

謝謝。

回答

0

這是詞彙狀態。有關更多信息,請參閱文檔和常見問題。大致你想要的是

<DEFAULT> SKIP: { < ~[] > } // Skip everything up to "/*@mat" 
<DEFAULT> TOKEN: { < STARTMAT: "/*@mat" > : GO } 
<GO> TOKEN: { <IN : "in" > 
      | <OUT : "out" > 
      | .... other rules go here .... 
      | <ENDMAT : "*/" > : DEFAULT // On a "*/" go back to skipping. 
} 
相關問題