例如,用户的输入是“ add -r ZacZ 1234567890 1999 abc”,假设每个元素都有其自己的用途(例如-r是一个函数),如何识别它们并对其进行计算?
void MyMusic::excuteCMDADD(Command cmd){
//ADD STH HERE//
view.printOutput("EXECUTING: " + CMD.getCommandString());
}
期望正确读取所有元素(包括-r(functions))。
答案 0 :(得分:0)
如果您需要识别一些命令,不同的单词和其他方法,则需要这样做:
是使代码自动化并声明所有可能的命令的唯一方法。
您需要先定义一个令牌:
词法标记或简单地标记是一个带有赋值的字符串,因此 确定的含义。它被构造成由令牌组成的一对 名称和可选的令牌值。令牌名称是以下类别 词汇单位。
换句话说,您对命令的特殊含义。
之后,您需要一个词汇语法
编程语言的规范通常包括一组 规则,即词汇语法,它定义了词汇语法。的 词汇语法通常是常规语言,具有语法规则 由正则表达式组成;他们定义了可能的集合 令牌的字符序列(词汇)。词法分析器识别字符串, 对于发现的每种字符串,词法程序都会采取行动, 最简单地产生令牌。
并进行令牌化:
标记化是划分和可能分类的过程 输入字符字符串的各个部分。结果令牌是 然后继续进行其他形式的处理。该过程可以是 被视为解析输入的子任务
最后是命令表达式的扫描程序和评估程序。
这是真正的方法,或者如果是否,如果您会在定义的时间内讨厌您的代码。