6

Background

I want to be able to parse Javascript source in a Delphi Application. I need to be able to identify variables and functions within the source for the purpose of making changes to the code through later code. I understand that I probably need to use a lexer for this purpose but have not had much luck using the lexer which I found (Dyaclexx).

Question

Is there a suitable freeware or open source delphi parser/lexer which already has token sets for Javascript or could be easily modified for this purpose without too much trouble?

If there isn't such a tool already available then what would be the best way to learn about writing your own lexer for this purpose?

Thank-you

jamiei
  • 2,006
  • 3
  • 20
  • 28

2 Answers2

4

For the lexer you can see Synedit's source code for the Javascript highlighter. A highlighter in Synedit context is a lexer with special hooks to provide highlighting to the editor component. Trimming those hooks and getting a plain lexer is a trivial job.

Also Synedit editor can come handy while learning how to build lexers as it will be a help to visually test your lexers real-time. You can see the demos or ask at the mailing list for more.

utku_karatas
  • 6,163
  • 4
  • 40
  • 52
0

I think you should use should look at GoldParser (http://www.devincook.com/goldparser) for generating a complete JS parser in Delphi code. GoldParser is freeware though.

user45260
  • 9
  • 2
  • Goldparser is nice but it is extremely slow. Even in speed optimized C++ code it takes 10 seconds to parse a 15000 lines of code. If you compare this with the speed of the PHP parser this is extremely slow. – Elmue Sep 26 '13 at 02:55