C++扫描器(string-fu!)

evi*_*ack 2 c# c++ java string

我正在编写扫描程序作为编译器的一部分.

我试图写下这一部分时遇到了严重的问题:

我需要能够解析一个令牌流并将它们逐个推入一个向量中,忽略空格并标记特殊符号(简单的情况下,我们只考虑括号和括号)

例: int main(){ }

应解析为6个不同的标记:

  1. INT
  2. 主要
  3. (
  4. )
  5. {
  6. }

你会怎么解决这个问题?我用C++编写这个,但是java/C#解决方案也会受到赞赏.

一些要点:

  1. 不,我不能使用Boost,我不能保证我可以使用这些库.(不要问......)

  2. 我不想使用lex或任何其他特殊工具.我以前从未这样做过,只想尝试一次,说我做到了.

Mic*_*fik 6

Stroustrup的书,即C++编程语言,有一个很好的例子,可以为简单的计算器程序构建词法分析器/解析器.它应该是学习如何做你想做的事情的良好起点.