Difference between revisions of "Libraries and tools/HJS"
Jump to navigation
Jump to search
Mark Wassell (talk | contribs) m |
BrettGiles (talk | contribs) m (Making some keywords into links) |
||
Line 1: | Line 1: | ||
''Javascript - The World's Most Misunderstood Programming Language?'' [http://javascript.crockford.com/javascript.html] |
''Javascript - The World's Most Misunderstood Programming Language?'' [http://javascript.crockford.com/javascript.html] |
||
− | A Javascript [http://developer.mozilla.org/en/docs/About_JavaScript] parser using Happy and Alex. It will parse the grammer detailed in ECMA-262 with some additions from [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference] to support the parsing of specific test cases. |
+ | A Javascript [http://developer.mozilla.org/en/docs/About_JavaScript] parser using [[Happy]] and [[Alex]]. It will parse the grammer detailed in ECMA-262 with some additions from [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference] to support the parsing of specific test cases. |
Possible applications of a Javascript interpreter: |
Possible applications of a Javascript interpreter: |
||
− | * Provide basis for experimenting with monadic interpreters and the addition of things like Software Transactional Memory to a 'mainstream language' |
+ | * Provide basis for experimenting with monadic interpreters and the addition of things like [[software transactional memory|Software Transactional Memory]] to a 'mainstream language' |
* Basis for other 'large' language parsers |
* Basis for other 'large' language parsers |
||
− | * Embed Javascript in applications and application servers (such as HAppS) |
+ | * Embed Javascript in applications and application servers (such as [[HAppS]]) |
== Installing == |
== Installing == |
||
− | Comes as a basic Cabal package [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hjs-0.1]. If you do change the parser or lexer file you will need to manually |
+ | Comes as a basic [[Cabal]] package [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hjs-0.1]. If you do change the parser or lexer file you will need to manually |
− | run Alex and Happy *and* run FixHappy on the JavaScriptParser.hs file. This will add an 'action' argument |
+ | run Alex and Happy '''*and*''' run FixHappy on the JavaScriptParser.hs file. This will add an 'action' argument |
to lexer call; this is a 'hack' to get parsing of regular expressions to work. |
to lexer call; this is a 'hack' to get parsing of regular expressions to work. |
||
Revision as of 02:04, 15 February 2007
Javascript - The World's Most Misunderstood Programming Language? [1]
A Javascript [2] parser using Happy and Alex. It will parse the grammer detailed in ECMA-262 with some additions from [3] to support the parsing of specific test cases.
Possible applications of a Javascript interpreter:
- Provide basis for experimenting with monadic interpreters and the addition of things like Software Transactional Memory to a 'mainstream language'
- Basis for other 'large' language parsers
- Embed Javascript in applications and application servers (such as HAppS)
Installing
Comes as a basic Cabal package [4]. If you do change the parser or lexer file you will need to manually run Alex and Happy *and* run FixHappy on the JavaScriptParser.hs file. This will add an 'action' argument to lexer call; this is a 'hack' to get parsing of regular expressions to work.
Todo
- Extend scope of interpreter to all statements
- Include function definition and calls
- Include objects
- Include built in objects and functions