noam

Noam Build Status

Noam is a JavaScript library for working with automata and formal grammars for regular and context-free languages.

Noam’s name comes from Noam Chomsky and his hierarchy of formal languages and grammars.

Status

Pre-alpha. Horrible performance, only functions for working with FSMs implemented. Stay tuned. See TODO list.

Web apps

Install

If you just want to use noam (and not contribute to development), install using npm:

npm install noam

To use noam in a browser, add a <script> link to the browser-based versions found in lib/browser/:

<script src="https://ivanzuzak.info/noam/lib/browser/noam.js"></script>

or minified version:

<script src="https://ivanzuzak.info/noam/lib/browser/noam.min.js"></script>

Development

  1. Fork and/or clone repo: git clone https://github.com/izuzak/noam.git
  2. Change dir to noam: cd noam
  3. Install dependencies: npm install
  4. Make changes to noam sources (./src), tests (./test) or benchmarks (./benchmarks)
  5. Build using grunt (validate -> lint -> concat -> test -> minify): grunt (on linux and osx), grunt.cmd (on windows)
  6. (bonus points) Run istanbul cover node_modules/jasmine-node/bin/jasmine-node test to get code coverage reports in ./coverage. Add more tests or change existing tests to improve coverage
  7. Fix issues reported by tests and coverage reports, and then repeat 5) and 6)
  8. Commit, push and make a pull request, or send a git patch by e-mail
  9. E-mail me if you have questions (e-mail address is below)

Credits

Noam is developed by Ivan Zuzak <izuzak@gmail.com> and Ivan Budiselic. Contributors: Vedrana Jankovic.

Noam is built with many awesome open-source projects:

License

Licensed under the Apache 2.0 License.