主要是为了尝试一下JAVACC,利用编译原理的思路构造自己的语言:) 首先到JAVACC.dev.java.net/" />https://JAVACC.dev.java.net/JAVACC的老家下载JAVACC 我们今天的目标就是把fromTeacher转化为select*fromTeacher 首先编写.jj文件 1.定义要空开的分隔符 SKIP: { "" |"\t" |"\n" |"\r" |"\f" } 2.定义关键字。from为HQL的关键字,Teacher是用户输入的类名,应当是一个任意由字母和数字组成的单词,我们可以用正则表达式:["A"-"Z","a"-"z","0"-"9"]来表示。 TOKEN:/*RESERVEDTOKENSFORUQL*/ { | } 3.接下来定义一下输入的顺序与规范 voidexpression(): { TokentTable; } { ( tTable= ) { SQLSB.append("SELECT*"); SQLSB.append("FROM").a