zoukankan      html  css  js  c++  java
  • 如何解析字符串指令

    大实验涉及到解析字符命令,要求在linux下使用C++。

    简要的列举下需要解析的指令,不需要明白其含义。

    1.任务指令有

    give(human,obj),puton(obj1,obj2),goto(obj),putdown(obj),pickup(obj),opendoor(obj),putin(obj)

    每条任务指令都需要robot产生动作规划

    2.环境描述指令有

    sort(num),color(num),size(num),location(num,loc),dooropen(num),inside(num,num),plate(num),hold(num)

    需要将环境描述转化为数据结构

    ---------------------------------------------------------------------------------------------------------------

    下面开始考虑各种解析字符串指令的方法。

    1.最简单的switch方法

    在这个例子中,由于指令数教少,只需提取指令支付串的前四位,使用switch case即可。

    如果指令较多,无法用固定位数识别,可以先查找"("然后提取完整的指令名称,再进行switch。

    在确定指令种类后,按照上述类似方法提取指令参数。

    优点:简单易理解

    缺点:低效率,指令种类识别时间取决于指令种类数,代码冗余。

    2.进一步改进,使用hash或map等提高识别效率

    建立各种指令函数,减少代码冗余。

    通过hash或map建立映射

    map建立教容易,但是hash映射就不太好搞了。

    优点:较简单,易扩展,效率有所提高,代码冗余减少

    3.分叉树识别

    字符串指令逐位读入并识别,通过树建立起指令与函数的映射。

    优点:结构清晰,易扩展,高效,冗余很少。

    缺点:需要建立分叉识别树。

    4.正则表达式

    利用强大的字符串处理工具正则表达式,可以省略很多工作。

    关于正则表达式可以参考:

    http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

    ----------------------------------------------------------------------------------------------------------

  • 相关阅读:
    手机自动化
    记录
    Linux 死机了怎么办
    前端源码
    LNMP环境
    PHP学习之路(一)
    py
    蜘蛛问题
    mongodb
    【HTML/XML 2】XML基础知识点总结
  • 原文地址:https://www.cnblogs.com/2010Freeze/p/2442145.html
Copyright © 2011-2022 走看看