文件名称:delimiter_matching
介绍说明--下载内容均来自于网络,请自行研究使用
编写简易编译器,能发现分隔符匹配的错误如括号、注释符的匹配问题,都能检测出来-delimiter matching
The simple algorithm uses a stack and is as follows:
Make an empty stack. Read characters until end of file. If the character is an open anything, push it onto the stack. If it is a close anything, then if the stack is empty report an error. Otherwise, pop the stack. If the symbol popped is not the corresponding opening symbol, then report an error. At end of file, if the stack is not empty report an error.
Besides the balancing of the parentheses, brackets, and braces, the Annotation (“/**/”) should be balanced. When a “/*” is found, all the letters behind will be ignored until a “*/” is found. If it is not found at the end of the file, an error will be reported.
Some of the contents of the stack are shown in the figure below.
The simple algorithm uses a stack and is as follows:
Make an empty stack. Read characters until end of file. If the character is an open anything, push it onto the stack. If it is a close anything, then if the stack is empty report an error. Otherwise, pop the stack. If the symbol popped is not the corresponding opening symbol, then report an error. At end of file, if the stack is not empty report an error.
Besides the balancing of the parentheses, brackets, and braces, the Annotation (“/**/”) should be balanced. When a “/*” is found, all the letters behind will be ignored until a “*/” is found. If it is not found at the end of the file, an error will be reported.
Some of the contents of the stack are shown in the figure below.
(系统自动生成,下载前可以参看下载内容)
下载文件列表
delimiter_matching\main.cpp.txt
..................\stack.h.txt
delimiter_matching
..................\stack.h.txt
delimiter_matching