随笔分类 -  编译原理

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