-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
This guide walks you through setting up Crodox and creating your first grammar template.
- Open the Crodox app at your organization's URL
- Enter your email address and click Send login code
- Check your inbox for the login code and enter it
After signing in, you land on the Github tab.
- Enter a user name and click save
- Click Re-link GitHub to connect your GitHub account
- Sign in to GitHub Enterprise and Authorize the Crodox-DEV app
Once authorized, the page shows "GitHub account linked" with your GitHub username.
Switch to the Template tab. This is where you define your Crodox grammar.
You have three options:
| Method | How |
|---|---|
| Paste from wiki | Copy an example definition (e.g., Angular, Python, T-SQL) into the text editor |
| Import | Click import to load a .crodox file |
| Write from scratch | Write your grammar directly in the editor using the Syntax Overview |
Click save when done. The parser validates your template:
- Valid → The template is saved and ready to use
- Error → The parser shows an error message. Refer to the Syntax Overview and the grammar documentation to fix it
Tip: Use the Template Generator to generate a starter template for your language.
Switch to the Bubbles tab.
- Enter a name for your bubble (e.g.,
Angular) - Click create
The bubble opens with your template linked. You can now select a repository to test against. After saving, Crodox begins parsing the repository using your grammar definition.
Note: Creation and parsing may take a few seconds. Performance will improve in the release version.
- Learn the grammar syntax: Syntax Overview
- Understand the building blocks: Objects, Sub-bodies, Variables
- See complete examples: Angular, Python, T-SQL
- Generate starter templates: Template Generator
If the parser rejects your template, check for these common mistakes:
| Error | Cause | Fix |
|---|---|---|
| Unclosed element | Missing closing tag (<:>, <*>, <~>, ` |
>, ?>`) |
| Empty jump target |
-->> followed by an or-statement with an empty branch (`< |
|
| Invalid jump target |
-->> not followed by any token |
Add a stop token: -->> \n
|
| Missing variable delimiters |
<< >> not properly closed |
Check that every << has a matching >>
|
| Empty reference |
<-{}-> with no object names |
List at least one object: <-{name}->
|
| Unclosed or-statement | `< | without matching |
| Unclosed repeat |
<? without matching ?>
|
Add the closing ?>
|
If the template is valid but parsing fails on your repository:
| Symptom | Cause | Fix |
|---|---|---|
| Parsing hangs | Grammar is too broad or has infinite loops | Review Repeat Statements — ensure repeats have proper terminators |
| Objects not found | Grammar doesn't match the actual source code | Compare your definition against the real file syntax |
| Wrong dependencies | Variable scoping is incorrect | Review Variables — check :following, :up, :down scopes |
| Files not linked | Path variable name doesn't match file grammar name | Ensure <~"FROM".ts~> and <<"FROM".ts>> share the same name — see Path Variables
|
- Getting Started
- Sign-Up
- Home Screen
- Creating Your First Template
- Template Editor
- Application Navigation
- Syntax Overview
- Workflow: End-to-End
- Workflow: Test with simpleDemo
- Workflow: Build Template from angularTemp
- Demo Repositories
- Template
- Workbench
- GitHub Integration
- GitHub App Installation
- GitHub Repository Setup
- GitHub Re-linking
- Settings
- Overview
- Declarations
- Types
- Scoping