各位,如今项目里要用到JavaCC,所以得搞懂这个东西,可现在有个问题:在JJ文件中,会有这样的TOKEN定义:
//1
<*>
TOKEN :
{
    <COLON : ":" > : CONTENTSTATE
}//2
<DEFAULT, PARAMSTATE>
TOKEN :
{
    <SEMICOLON : ";" > : PARAMSTATE
}//3
TOKEN :
{
    <VCAL_BEGIN : "BEGIN" <COLON> "VCALENDAR">
}这里定义了三个TOKEN,第一个上边的<*>是表示什么呢?
第二个上边的<DEFAULT, PARAMSTATE>表示什么?第一个和第二个在定义的最后,都有一个冒号,后边又跟了一个单词,它们又是什么意思?知道的朋友发发言吧,这个问题我搞了好几天,一直搞不定,一直停在JJ文件这里,没有进展,所以非常郁闷。(第三个没什么问题。)

解决方案 »

  1.   

    我靠,高人终于出现了:) :)不过你说的好像不对,<*>是操作符的话, 为什么有的Token前有,有的Token前没有呢?就我的理解:表示下边的TOKEN多在输入流中多次出现。但另外的问题到现在还是没头绪不过呢,由这个东西引起的问题已经被我搞定,只是如果不搞懂这个东西的话,。~~~
      

  2.   

    1.<*>应该表示开始
    2.后面定义的是lexical state。表示该token只在该lexical state下有效。