Atitit.java expression fsm 表达式词法分析引擎 v2 qaa.docx

时间:2022-09-13 16:57:02

Atitit.java expression fsm 表达式词法分析引擎 v2 qaa.docx

C:\0workspace\AtiPlatf_cms\src\com\attilax\fsm\JavaExpFsm.java

String code = "new(com.attilax.util.connReduceDync).set_resfile(uc_js.txt).joinNout() "

.trim();

Ver2 新特性

字符串单引号括起来的支持

字符串可以不要双引号括起来..方便的使用path等..

$code=new(com.attilax.user.AgentService).login(admin,admin)

[

"new",

"(",

"com.attilax.user.AgentService",

")",

".",

"login",

"(",

"admin",

"admin",

")"

]

作者::  ★(attilax)>>>   绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.cnb.net/attilax

package com.attilax.fsm;

import java.util.List;

import com.google.common.collect.Lists;

public class JavaExpFsm {

List<String> tokens = Lists.newLinkedList();

String curToken = "";

// String splitors = "(),\"";

String curStat = "ini";

private String code;

public char[] code_char_arr;

public JavaExpFsm(String code) {

this.code = code;

}

/**

* http://localhost/new(com.attilax.util.connReduceDync).set_resfile(uc_js.txt).joinNout()

* http://localhost/wrmiServlet?code=new(com.attilax.util.connReduceDync).set_resfile(uc_js.txt).joinNout()

* @param args

*/

public static void main(String[] args) {

String code = "new(com.attilax.util.connReduceDync).set_resfile(uc_js.txt).joinNout() "

.trim();

code= " new(com.attilax.agent.AgentRechargeService).getSubMemTotalsRecycleByAgentId(\"promoter:$pid$,fld2:v2\")";

List li = new JavaExpFsm(code).getTokens();

for (Object object : li) {

System.out.println(object);

}

System.out.println(li);

}

public List getTokens() {

code_char_arr = code.toCharArray();

for (char c : code_char_arr) {

// get next char,,then change stat

// jude cur char and cur stat...then if or not chage stat

if (c == '(' && !this.curStat.equals("strStart")) {    //&&  cur stta=ini

this.curStat = "brkStart";

tokens.add(this.curToken);

tokens.add("(");

this.curToken = "";

continue;

}

// if (c == '.' && this.curStat.equals("brkStart")) {

//

// curToken = curToken + String.valueOf(c);

// continue;

//

// // this.curStat.equals("brkEnd"))

//

// }

//

if (c == ')'  && !this.curStat.equals("strStart") ) {    //&& cur stat =brk start

this.curStat = "brkEnd";

if(this.curToken.length()>0)

tokens.add(this.curToken);

tokens.add(")");

this.curToken = "";

continue;

}

if (c == '.' && this.curStat.equals("brkEnd")) {

tokens.add(".");

curToken = "";

continue;

}

if(c=='\"' && this.curStat.equals("brkStart"))

{

this.curStat = "strStart";

// tokens.add(c);

this.curToken = "";

continue;

}

if(c=='\"' && this.curStat.equals("strStart"))

{

this.curStat = "strEnd";

tokens.add(this.curToken);

this.curToken = "";

continue;

}

if(c==',' && this.curStat.equals("brkStart"))

{

//this.curStat = "strEnd";

tokens.add(this.curToken);

this.curToken = "";

continue;

}

// if (this.curStat.equals("ini"))

curToken = curToken + String.valueOf(c);

}

return tokens;

}

}

Atiend

Atitit.java expression fsm 表达式词法分析引擎 v2 qaa.docx的更多相关文章

  1. Atitit&period;java expression fsm 表达式分词fsm引擎

    Atitit.java expression fsm 表达式分词fsm引擎 C:\0workspace\AtiPlatf_cms\src\com\attilax\fsm\JavaExpFsm.java ...

  2. Atitit s2018&period;5 s5 doc list on com pc&period;docx  v2

    Atitit s2018.5 s5  doc list on com pc.docx  Acc  112237553.docx Acc Acc  112237553.docx Acc baidu ne ...

  3. 2019t1&lowbar;sumdoc&lowbar;list&period;txt aa&period;docx acc baidu v2 sbb&period;docx Acc jindon v2 sbb&period;docx assetsList&period;html Atiitt 日本刑法典读后笔记&period;docx Atiti 遇到说花心的时候赞美应对&period;docx Atitit lesson&period;docx Atitit malye主义、mzd思想和dsp理论的区别和联系&period;docx Ati

    2019t1_sumdoc_list.txtaa.docxacc baidu v2 sbb.docxAcc jindon v2 sbb.docxassetsList.htmlAtiitt 日本刑法典读 ...

  4. Atitit s2018&period;6 s6 doc list on com pc&period;docx Atitit s2018&period;6 s6 doc list on com pc&period;docx  Aitit algo fix 算法系列补充&period;docx Atiitt 兼容性提示的艺术 attilax总结&period;docx Atitit 应用程序容器化总结 v2 s66&period;docx Atitit file cms api

    Atitit s2018.6 s6  doc list on com pc.docx Atitit s2018.6 s6  doc list on com pc.docx  Aitit algo fi ...

  5. Atitit s2018&period;5 s5 doc list on com pc&period;docx  Acc 112237553&period;docx Acc baidu netdisk&period;docx Acc csdn 18821766710 attilax main num&period;docx Atiitt put post 工具 开发工具dev tool test&period;docx Atiitt 腾讯图像分类相册管家&period;docx

    Atitit s2018.5 s5  doc list on com pc.docx  Acc  112237553.docx Acc baidu netdisk.docx Acc csdn 1882 ...

  6. Atitit s2018&period;2 s2 doc list on home ntpc&period;docx&&num;160&semi; &bsol;Atiitt uke制度体系 法律 法规 规章 条例 国王诏书&period;docx &bsol;Atiitt 手写文字识别 讯飞科大 语音云&period;docx &bsol;Atitit 代码托管与虚拟主机&period;docx &bsol;Atitit 企业文化 每日心灵 鸡汤 值班 发布&period;docx &bsol;Atitit 几大研发体系对比 Stage-Gat

    Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系  法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别   ...

  7. Atitit&period;java相比c&num;&period;net的优点 优缺点 &&num;160&semi;v2 q330

    Atitit.java相比c#.net的优点 优缺点  v2 q330 1. 跨平台可在LINUX上,mac跑以外.主要如下: 1 2. IDE ECLIPSE(500m)是绿色的,换机器不用安装,C ...

  8. Atitit&period;java&&num;160&semi;jna&&num;160&semi;&&num;160&semi;调用c&&num;160&semi;&&num;160&semi;c&plus;&plus;&&num;160&semi;dll的原理与实践&&num;160&semi;&&num;160&semi;总结&&num;160&semi;&&num;160&semi;v2&&num;160&semi;&&num;160&semi;q27

    Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2  q27 1. Jna简单介绍1 2. Jna范例halo owrld1 3. Jna概念2 3.1. (1)需 ...

  9. atitit&period;java解析sql语言解析器解释器的实现

    atitit.java解析sql语言解析器解释器的实现 1. 解析sql的本质:实现一个4gl dsl编程语言的编译器 1 2. 解析sql的主要的流程,词法分析,而后进行语法分析,语义分析,构建sq ...

随机推荐

  1. Window&period;location

    1.location 对象 // 假设当前url是 http://localhost/rpc/plugin.php#hash?a=aaa&b=bbb alert(window.location ...

  2. 构造函数模式自己定义js对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 搭建DNS服务器

    导读 Linux下架设DNS服务器通常是使用Bind程序来实现的.Bind是一款实现DNS服务器的开放源码的软件.DNS即域名系统,主要功能是将人们易于记忆的Domain Name(域名)与不易记忆的 ...

  4. DIP开放计算平台介绍

    随着平台业务的发展,依赖于Portal(Web)构建的服务架构已逐渐不能满足现有的一些复杂需求(如:使用Hive SQL无法完成计算逻辑),而且对于一些具备编程能力的程序员或数据分析师而言,能够自主控 ...

  5. Servlet的学习笔记

    一.Servlet生命周期 init(ServletConfig config)  ----->初始化 service(ServletRequest req, ServletResponse r ...

  6. scala 函数编程

     scala 函数编程  Effective Scala.pdf: http://www.t00y.com/file/76767869 Functional_Programming_in_Scal ...

  7. BIP Requests Are Failing With Error &amp&semi;quot&semi;OPP Error Oracle&period;apps&period;xdo&period;XDOException&colon; Error Creating Lock Fil

    In this Document   Symptoms   Cause   _afrLoop=975833031487795&id=1512691.1&displayIndex=1&a ...

  8. Button颜色选择器进阶

    drawable/button_color.xml <?xml version="1.0" encoding="utf-8"?> <selec ...

  9. &lbrack;CF787D&rsqb;遗产&lpar;Legacy&rpar;-线段树-优化Dijkstra&lpar;内含数据生成器&rpar;

    Problem 遗产 题目大意 给出一个带权有向图,有三种操作: 1.u->v添加一条权值为w的边 2.区间[l,r]->v添加权值为w的边 3.v->区间[l,r]添加权值为w的边 ...

  10. Spring实现无需注解实现自动注入

    xml配置 过程:设置自动装配的包-->使用include-filter过滤type选择为regex为正则表达式-->expression是表达是式也就是限制条件 <?xml ver ...