随笔分类 - 编译原理
摘要:解析方法调用的语法,支持常量(双引号包含)、变量、函数(嵌套调用)作为入参。 自动机: java实现: // 方法执行 public String excuteMethod(String expression, JSONObject formData) throws Exception { if (
阅读全文
摘要:自定义逻辑表达式,关键字:= 等于,& 与,| 或, !非, ( , ) ,<> 包含,>< 不包含, # 不等于。 表达式支持括号标识作用域。 自动机分析如下: JAVA 实现: public class ConditionAnalysis2 { // 终止符号 Set<Character> si
阅读全文
摘要:自定义逻辑表达式,关键字:"="等于,"&"与,"|"或,"(",")","<>"包含,"><"不包含,"#"不等于。 表达式支持括号标识作用域。 自动机分析如下: JAVA 代码实现: public class ConditionAnalysis { public static void main
阅读全文
摘要:根据建表语句解析表结构,并将表结构解析为JSON。根据MYSQL的建表语句, 建表语句: CREATE TABLE `TEST` ( `ID` varchar(56) NOT NULL, `CREAETE_TIME` datetime NOT NULL, `IS_DEL` varchar(6) NO
阅读全文
摘要:解法主要有两项工作: 1、处理作用域(栈或递归); 2、顺序处理逻辑:(1)根据分隔符将语句拆解为 token;(2)根据关键字的运算逻辑定义状态,设计自动机;(3)从左至右逐个解析 token ,将 token 压入自动机 程序处理时,先处理会引起自动机状态变更的关键字或字符,再处理 token,
阅读全文