Also known as Formal Languages and Automata Package dot JavaScript.
By UCSD students, for all of you.
To make a program that is more accessible and intuitive to use, so we can all become a JFLAP-free homework group for Professor Minnes' class (CSE 105 - Theory of Computation).
TODO: This is UNDER CONSTRUCTION. Please stand by.
- Set construction scripting language
- Turing Machine
- Formal Definition summary
- Tape Symbols
- q_acc
- q_rej
- Tape testing
- TM
- Theme presets
- Context-Free Grammars
- StepTracer design
- Cross-window operations
- Automatic build pipeline with TravisCI
- Pushdown Automata
- Regular Expressions
- Hotkey system
- New UI design
- Module system
- Graph optimizations
- Bug reporting
- Generic nodal graphing mode
- Deterministic Finite Automata
- Nondeterministic Finite Automata
- Nodal graphing
- Basic layout
- Node editing
- Edge editing
- Label editing
- Formal Definition summary
- States
- Symbols
- Transitions
- Start State
- Final States
- String testing
- DFA
- NFA
- Export to image
- Circular auto-layout
- Step-By-Step mode
- User-defined themes
- Autosave system
- Custom language
- Offline capabilities
NOTE: Check out our changelog for more information!
Check out our docs folder for more detailed and comprehensive tutorials, information, examples, etc.
Here's a TL;DR to get you started quickly:
- Install your favorite text editor (anything that can handle JavaScript, HTML, and CSS would be nice, but not necessary).
- We use Node.js and Git. Setup them up accordingly.
- For sanity checking, we use ESlint and Stylelint. If you can add them to your editor that would be nice to have, but, once again, not necessary. These checks will be performed during testing.
- For testing, we use jest. No installation is necessary, but do be familiar on how to use it.
- Create a project root directory
flapjs
. This should contain all related repos (such asflapjs/webapp
orflapjs/welcome
). - Clone your repo into
flapjs
. - Now all setup is complete, we must run
npm install
for the cloned repo to prepare all project dependencies. - The entry point is
src/main.js
. From there, you can now get started on your adventure! Happy coding!
If you have any more questions, please contact any Flap.js dev team member.
Or, you can contact me: ank060@ucsd.edu (Please begin the subject with 'Flap.js - ')
Thank you for reading me!