-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Updated README file - Added installation process - Added explanation on how to run tests, parse and highlight a file - Added current status * Adding workflow badge --------- Co-authored-by: AnHeuermann <[email protected]>
- Loading branch information
1 parent
643c481
commit 6e9a27c
Showing
2 changed files
with
70 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
name: build-parser | ||
name: Build | ||
run-name: Build tree-sitter-modelica | ||
|
||
on: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,72 @@ | ||
[![build-parser](https://github.com/OpenModelica/tree-sitter-modelica/actions/workflows/build-parser.yml/badge.svg)](https://github.com/OpenModelica/tree-sitter-modelica/actions/workflows/build-parser.yml) | ||
|
||
# tree-sitter-modelica | ||
|
||
An [open-source](OSMC-License.txt) Modelica ([Modelica Language Specification v3.5](https://specification.modelica.org/maint/3.5/MLS.html)) grammar for [tree-sitter](https://github.com/tree-sitter/tree-sitter). | ||
An [open-source](OSMC-License.txt) Modelica | ||
([Modelica Language Specification v3.5](https://specification.modelica.org/maint/3.5/MLS.html)) | ||
grammar and highlighting-query for | ||
[tree-sitter](https://github.com/tree-sitter/tree-sitter). | ||
|
||
## Installation | ||
|
||
```bash | ||
npm install | ||
npm run build | ||
``` | ||
|
||
To generate the C code to parse Modelica run: | ||
|
||
```bash | ||
npx tree-sitter generate | ||
``` | ||
|
||
> [!NOTE] | ||
> If you have ./node_modules/.bin in your `PATH` environment variable you can skip `npx` | ||
> ```bash | ||
> tree-sitter generate | ||
> ``` | ||
## Unit Tests | ||
There is a number of tests included. To run all tests defined in [test/](./test/) just run: | ||
```bash | ||
npx tree-sitter test | ||
``` | ||
### Examples | ||
|
||
To test the parser on a Modelica file run: | ||
|
||
```bash | ||
npx tree-sitter parse examples/SimpleMath.mo | ||
``` | ||
|
||
## Highlighting | ||
|
||
There is also a highlighting query included. | ||
Make sure that the | ||
[tree-sitter per-user configuration](https://tree-sitter.github.io/tree-sitter/syntax-highlighting#per-user-configuration) | ||
are pointing to the parent directory of `tree-sitter-modelica`. | ||
So if this directory is in `/home/USER/workspace/tree-sitter-modelica` add | ||
`/home/USER/workspace` to the parser directories: | ||
|
||
**config.json** | ||
```json | ||
{ | ||
"parser-directories": [ | ||
"/home/USER/workspace" | ||
], | ||
} | ||
``` | ||
|
||
To test the highlighting configure run: | ||
|
||
```bash | ||
npx tree-sitter highlight examples/SimpleMath.mo | ||
``` | ||
|
||
## Current Status | ||
|
||
Currently used by [OMFrontend.js](https://github.com/OpenModelica/OMFrontend.js). | ||
Tree-sitter-modelica has been tested on a "Save Total" version of the DrumBoiler.mo file | ||
which was successfully parsed and highlighted. |