├── .gitignore ├── .gitmodules ├── .travis.yml ├── COPYRIGHT ├── Changelog ├── LICENSE ├── Makefile ├── README.md ├── apps ├── hello-world.fun ├── instagram │ └── instagram.fun └── todo-mvc │ ├── todo-mvc.css │ └── todo-mvc.fun ├── bin └── fun ├── examples ├── chat.css ├── chat.fun ├── composit_statements.js ├── drag.fun ├── drag2.fun ├── for-loops.fun ├── if_else.fun ├── image.fun └── switch.fun ├── package.json ├── scripts └── run-tests.js ├── specification ├── compiler.txt ├── specification.txt └── types.md ├── src ├── README.md ├── compiler.js ├── dev-client.html ├── dev-server.js ├── highlighter │ ├── codePrinter.css │ └── codePrinter.js ├── info.js ├── modules │ ├── alert.fun │ ├── app.fun │ ├── console.fun │ ├── facebook.fun │ ├── jsonp.fun │ ├── list.fun │ ├── localstorage.fun │ ├── location.fun │ ├── mouse.fun │ ├── style.fun │ ├── tap.fun │ ├── text.fun │ ├── time.fun │ ├── twitter.fun │ ├── ui │ │ └── lists.fun │ ├── uuid.fun │ ├── viewport.fun │ └── xhr.fun ├── parser.js ├── resolver.js ├── runtime │ ├── expressions.js │ ├── library.js │ └── normalize.css ├── tokenizer.js └── util.js └── test ├── ast-mocks.js ├── parser-mocks.js ├── resolver-mocks.js ├── runtime-mocks.js └── tests ├── test-1-runtime-library.js ├── test-2-parser.js ├── test-3-resolver.js └── test-4-compiler.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | *~ 4 | .*swp 5 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "node_modules/std"] 2 | path = node_modules/std 3 | url = https://github.com/marcuswestin/std.js.git 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.6 4 | - 0.8 -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright (c) 2023 - Marcus Westin 2 | -------------------------------------------------------------------------------- /Changelog: -------------------------------------------------------------------------------- 1 | v0.3.0 2 | + Alias of v0.2.23 3 | + v0.2.23 had enough changes to warrant a big version number bump 4 | 5 | v0.2.23 6 | + Wooe, so many improvements I can't even list them all. 7 | + Awesome dev environment! Automatically sync UI with file on every save. 8 | 9 | v0.2.22 10 | + Allow for keywords to be XML attribute names 11 | + Add --normalize.css=false and minify=true commandline options 12 | + text module with text.trim 13 | + Implement != and ! comparative operators 14 | + Rename filter module to list, and make it list.filter 15 | 16 | v0.2.21 17 | + Hash-expand xml attributes a la
18 | + New tap modules 19 | + Back to using npm node modules instead of git... 20 | 21 | v0.2.20 22 | + Add support for automatic less preprocessing of elements 23 | + Add support for stylus 24 | + Automatically detect that less or stylus is required, and install them dynamically at runtime if needed 25 | + Handler event arguments are now cancelable 26 | + Allow for commas between XML attributes, e.g. 27 | + Remove need for `let` in front of declarations. Now it's just `foo = "bar"` 28 | 29 | v0.2.19 30 | + Disabled minification for now 31 | + Add -v/--version flags 32 | 33 | v0.2.18 34 | + Allow for `foo is "image"` as a shorthand for `foo is = "image"` 35 | + Inline all stylesheets with static hrefs as a 9 | 10 | 11 | 12 | 13 | 32 |