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 startThat 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 startNOTE: 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