C语言如何判断 // 后面的字符串是注释, 而#后面的是命令
本帖最后由 nabasasun 于 2013-10-25 13:31:27 编辑 比如这样:
#goto *black001
//跳转到black001这个标签
#stop
//在这里停止运行,其实不用写,因为已经跳到了下面的标签,只是说明这里程序中断了。
#set i=0
//给i赋值
*black001
//在这里继续运行
#i=i+1
//这里出错,因为i赋值的命令没有运行,goto到了black001了
//+++++++++++++++++++++++++++++++++++++++++++++++++
每行字符串用const char * str 表示
[解决办法]
你是想自己写编译器还是脚本解释器?
这是普通的字符串处理
遇到第一个字符是"#"就判断是命令
遇到现从个连续的//就认为是注释.
只是一个规则罢了.
[解决办法]
编译器就是知道
[解决办法]
简单的分析即可:
读一行
移除行首空白
如果行以//开头,则该行是注释
如果行以#开头,则该行是命令
[解决办法]
这个就是 所谓的语法分析器了词法分析器 Yacc
百度学学
中心思想是状态机思想
这个状态机可是个好东西 成为大神的必须课
[解决办法]
逐行扫描,每行以"\n"或者"\\"结尾
以"#"拆分每行,则除了下标为0的元素,其它都是命令。
[解决办法]
LZ是不是不知道该如何写“移除行首空白”的代码?
LZ是不是不知道该如何写“判断以//开头”的代码?