James 5 年 前
コミット
3d49a3ddb1

+ 2 - 1
src/main/java/com/jfinal/template/stat/Lexer.java

@@ -91,6 +91,7 @@ class Lexer {
 	 *   #else / #end
 	 *   
 	 * 2:关键字类型指令在获取到关键字以后,必须要正确解析出后续内容,否则抛异常
+	 *    2020-02-28: 该规则改为与 "非关键字指令" 一样
 	 * 
 	 * 3:非关键字类型指令只有在本行内出现 # id ( 三个序列以后,才要求正确解析出后续内容
 	 *    否则当成普通文本 
@@ -169,7 +170,7 @@ class Lexer {
 				}
 				
 				// throw new ParseException("#" + id + " directive requires parentheses \"()\"", new Location(fileName, beginRow));
-				return fail();	// 2020-02-28: 关键字指令在没有左括号的情况下也当作普通文本
+				return fail();	// 2020-02-28: 关键字指令在没有左括号的情况下也当作普通文本。支持更多应用场景,例如:jquery id 选择器用法 $("#if")
 				
 			case 11: 	// 用户自定义指令必须有参数
 				skipBlanks();

+ 0 - 4
src/main/java/com/jfinal/template/stat/Symbol.java

@@ -57,10 +57,6 @@ enum Symbol {
 	private final String name;
 	private final boolean hasPara;	// 是否有参
 	
-	/**
-	 * Lexer 中确定为系统指令以后,必须得到正确的后续 Token 序列,否则报异常
-	 * 扩展指令在得到 # id ( 序列以后才要求得到正确的后续 Token 序列,否则仅仅 return fail()
-	 */
 	@SuppressWarnings("serial")
 	private static final Map<String, Symbol> keywords = new HashMap<String, Symbol>(64) {{
 		put(Symbol.IF.getName(), IF);