fpc/packages/fcl-js
michael 393b4caba2 * Patch from Mattias Gaertner:
jswriter: more compact try..catch

pasresolver:
- mark function calls without ()
- "with type do ;"
- constructor call store TPasType
- mark if a constructor call creates a new
  instance or is a normal call
- same for destructor
- fixed checking assign operator types
- more tests

fppas2js:
- convert implicit calls in Pascal to explicit calls in JS
- built in procedure "exit" and "exit(value)"
- if loopvar is used afterwards append  if($loopend>i)i--;
- classes
  - declare using createClass, needs rtl magic
  - constructor
  - destructor
  - vars
  - ancestor
  - virtual, override, abstract
  - "is" operator
  - "as" operator
  - call inherited "inherited;", "inherited funcname;"
- dynamic arrays
  - init as "arr = []"
  - SetLength(arr,newlength)
  - length(arr)
- try..except, on .. do, raise
- insert default values in calls

git-svn-id: trunk@35383 -
2017-02-04 11:26:59 +00:00
..
examples * Added jsminifier unit 2016-10-08 08:14:42 +00:00
src * Patch from Mattias Gaertner: 2017-02-04 11:26:59 +00:00
tests * Fix from Mattias Gaertner to implement calling functions without arguments. 2016-12-18 16:22:23 +00:00
fpmake.pp * Added dependency on fcl-base 2016-10-08 12:01:46 +00:00
Makefile * regenerated makefiles with latest fpcmake 2016-06-18 01:00:45 +00:00
Makefile.fpc * Filter the Makefile's unit searchpaths from the fpmake command line. 2015-08-12 19:15:14 +00:00
Makefile.fpc.fpcmake * version updated to 3.1.1 2015-01-04 21:09:04 +00:00
README.TXT

This is a package that contains a Javascript Scanner/parser/Syntax tree.

The following units are defined:

jsbase: the definition of Javascript values. Used to represent constant values.
jstree: The Javascript syntax tree elements. Used in the parser to describe a source program
jsscanner: the Javascript scanner. Currently not yet unicode-enabled.
jsparser: the Javascript parser. Builds a complete javascript syntax tree.

The tests directory contains a set of FPCUnit tests to test the scanner and parser.
It needs Lazarus to run.

Todo:
- Add more tests.
- Unicode support.
- Runtime-engine ?

The idea for the tree elements and the parser come from the Libsee library,
written by David Leonard.

Enjoy!

Michael.