An implementation of the pico-engine hosted on node.js
See packages/pico-engine for detailed step-by-step instructions to get started.
This section is for those who want to contribute to the pico-engine
source code.
KRL programmers would be better off following the link in the previous section.
The pico-engine
is made up of several smaller modules. Each with their own documentation and test suite.
However they live in this repository in the packages/
directory (mono-repo style using lerna)
- pico-engine - this is the npm package people install and use
- pico-engine-core - executes compiled KRL and manages event life-cycle
- pico-engine-ui - the default UI of pico-engine
- krl-stdlib - standard library for KRL
- krl-compiler - compiles AST into a JavaScript module
- krl-parser - parses KRL to produce an abstract syntax tree (String -> AST)
- krl-generator - generates KRL from an AST (AST -> String)
- krl-editor - in browser editor for KRL
To run the pico-engine in development mode do the following:
$ git clone https://github.com/Picolab/pico-engine.git
$ cd pico-engine
$ npm run setup
$ npm start
That will start the server and run the test. npm start
is simply an alias for cd packages/pico-engine && npm start
NOTE about dependencies: generally don't use npm i
, rather use npm run setup
from the root. lerna will link up the packages so when you make changes in one package, it will be used in others.
Each sub-package has it's own tests. And the npm start
command is wired to watch for file changes and re-run tests when you make changes. For example, to make changes to the parser:
$ cd packages/krl-parser/
$ npm start
NOTE: When running via npm start
the PICO_ENGINE_HOME
will default to your current directory i.e. your clone of this repository.
Use a branch (or fork) to do your work. When you are ready, create a pull request. That way we can review it before merging it into master.
The Pico Labs documentation has a page inviting contributions and giving a step-by-step example, at Pico Engine welcoming your contributions.
To view details about versions: CHANGELOG.md
MIT