题目内容:
输入 & read 1个 BNF 文字档如 example.txt,
如S -> aSb| cd;
大写是 State, 小写是terminal value.
不同State 用 ';' 分隔
然后转变成1个与输入相同意思的自动机
输入格式:
文字 System.in 或 main(String[] args)
文字全都是英文小写
输出格式:
输出为 pass 代表输入的文字符合文字档所代表的意思
或
输出 error 和 错误的位置
例子:
文字档example.txt 内容是 S -> aSb| cd;
运行 java.main("档案位置\example.txt", "aaacdbbb")
输出pass
运行 java.main("档案位置\example.txt", "acb")
输出 error at c
若文字档格或错误也出 error
如格式是S -> aSb| cdS;
输出 error: The function dose not terminal
aS(*)
cdS(*)
备注: 如不能在1个.java 内完成可分开多个,这样也较清楚
谢谢 |