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