The server includes the compiler, and back end support for media requests, data requests, and SOAP, Java Direct, and XML-RPC. The bulk of the server (exceptions are noted below) is written in Java 1.4.
The bulk of the server is written in Java 1.4. The Java sources to the server are in /WEB-INF/lps/server/src. The ant build file in /WEB-INF/lps/server/build.xml compiles these to lps.jar.
The Script Compiler parser, and the CSS parser, are written in JavaCC. The sources to the script parser are in /WEB-INF/lps/server/sc/src. The sources to the css parser are in /WEB-INF/lps/server/src/com/laszlosystems/css. The server build file compiles these to Java.
The code generator in the Script Compiler is written in Jython. The compiler support for the KRANK feature is also written in Jython. The Jython sources are in /WEB-INF/lps/server/sc. The server build file compiles these to Java.
The Laszlo schema is sourced in /WEB-INF/lps/schema/lzx.rnc. This file is in the RELAX NG Compact Syntax. The build file in that directory produces an XML RELAX NG file, which is used during compilation for validation and to specify the types of attribute values.
The HTML "wrapper pages" that embed XML are generated using XSLT, to transform an XML description of the application (its dimensions, title, warnings, and errors) into HTML. This happens in response to a request to the LPS servlet. This includes the "developer console", and the application info summary.
The Laszlo runtime consists of the Laszlo Foundation Classes (LFC), which are written in ECMAScript and are linked into every Laszlo application, and a set of optional components (such as window and button) which are written in LZX and are linked into applications that use them.
The LFC is written in ECMAScript, with extensions to call the Flash runtime APIs. The sources are in /WEB-INF/lps/lfc. The script compiler is used to compile these sources into set of files (+/- debugging, +/-krank, +/-profiling, swf5/swf6) which are inserted into a generated swf file during compilation.
All the components except the base components view, text, inputtext, layout, and state are implemented in LZX. The sources are in /lps/components.
The build files use Ant.