簡體   English   中英

EBNF轉JavaCC詞法分析器

[英]EBNF to JavaCC lexer

您如何將:: = [A-Za-z]轉換為JavaCC?

我做了什么:

TOKEN :
{
  < LETTER : (["A"-"Z"])>
}

但我不知道怎么做較小的字母部分

像這樣:

TOKEN :
{
  < LETTER : (["A"-"Z", "a"-"z"])>
}

參考

字符列表描述了一組字符。 字符列表的合法匹配是該集合中的任何字符。 字符列表是由方括號內的逗號分隔的字符描述符的列表。 每個字符描述符描述一個字符或一個字符范圍(請參見下面的字符描述符),並將其添加到字符列表的字符集中。 如果字符列表以“〜”符號為前綴,則它表示的字符集是不在指定集中的任何UNICODE字符。

注意規則:

TOKEN :
{
  < LETTER : (["A"-"Z", "a"-"z"])>
}

等效於:

TOKEN :
{
  < LETTER : ["A"-"Z", "a"-"z"]>
}

兩者都匹配一個字母。 如果要重復該類,則需要括號並附加一個+量詞:

TOKEN :
{
  < LETTERS : (["A"-"Z", "a"-"z"])+ >
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM