What is the processes to parse an interpreted programming language?
I would like to know how is the best way 开发者_如何学JAVAto create the syntax tree.
The standard Stack Overflow resource for learning to write compilers and interpreters is Learning to write a compiler
Here is some explanation about abstract syntax trees (AST) from the LLVM project.
Teaser:
The AST for a program captures its behavior in such a way that it is easy for later stages of the compiler (e.g. code generation) to interpret. We basically want one object for each construct in the language, and the AST should closely model the language.
No different from any other language, really. The difference between interpreted and compiled languages is primarily in the backend, not the frontend. Specific languages may have specific parsing requirements, but you can't make a meaningful comparison in parsing technologies between the two classes of languages.
You don't list a language requirement for your parser, so if C or C++ is a possibility, you should start by looking at yacc: http://en.wikipedia.org/wiki/Yacc
Yacc generates a C parser for your specific syntax. Getting started with that might be a little extra work, but once you get the thing up and rolling, it should be easier to maintain.
Disclaimer: I have only used yacc in one project and it was 10+ years ago, so your milage may vary.
精彩评论