Skip to content

Commit 8ab40b2

Browse files
authored
test: add workflow to test grammar (#239)
1 parent c21998f commit 8ab40b2

File tree

8 files changed

+1474
-4
lines changed

8 files changed

+1474
-4
lines changed

.github/workflows/main.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
on: [push]
2+
jobs:
3+
grammar:
4+
runs-on: ubuntu-20.04
5+
strategy:
6+
matrix:
7+
node-version: [12.x]
8+
steps:
9+
- uses: actions/checkout@v2
10+
- name: Use Node.js ${{ matrix.node-version }}
11+
uses: actions/setup-node@v1
12+
with:
13+
node-version: ${{ matrix.node-version }}
14+
- run: yarn install
15+
- run: yarn test:grammar
16+
17+

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@
177177
"compile": "tsc -watch -p ./",
178178
"postinstall": "node ./node_modules/vscode/bin/install",
179179
"test": "CODE_TESTS_WORKSPACE='./' node ./node_modules/vscode/bin/test",
180+
"test:grammar": "vscode-tmgrammar-snap -s source.fortran.free -g ./syntaxes/fortran_free-form.tmLanguage.json -t \"./test/resources/*.f90\"",
180181
"lint": "node ./node_modules/tslint/bin/tslint ./src/**/*.ts "
181182
},
182183
"devDependencies": {
@@ -194,7 +195,8 @@
194195
"remap-istanbul": "^0.8.4",
195196
"tslint": "^4.0.2",
196197
"typescript": "^3.5.1",
197-
"vscode": "^1.1.37"
198+
"vscode": "^1.1.37",
199+
"vscode-tmgrammar-test": "^0.0.11"
198200
},
199201
"husky": {
200202
"hooks": {

test/resources/class.f90.snap

Lines changed: 239 additions & 0 deletions
Large diffs are not rendered by default.

test/resources/sample.f90.snap

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
>program main
2+
#^^^^^^^ source.fortran.free meta.program.fortran keyword.control.program.fortran
3+
# ^ source.fortran.free meta.program.fortran
4+
# ^^^^ source.fortran.free meta.program.fortran entity.name.program.fortran
5+
> ! execution
6+
#^ source.fortran.free meta.program.fortran meta.block.specification.fortran
7+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran comment.line.fortran
8+
# ^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran comment.line.fortran
9+
>
10+
> call say_hello()
11+
#^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.statement.control.call.fortran
12+
# ^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.statement.control.call.fortran keyword.control.call.fortran
13+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.statement.control.call.fortran
14+
# ^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.statement.control.call.fortran entity.name.function.subroutine.fortran
15+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.statement.control.call.fortran punctuation.parentheses.left.fortran
16+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.statement.control.call.fortran punctuation.parentheses.right.fortran
17+
>
18+
>contains
19+
#^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran keyword.control.contains.fortran
20+
>
21+
> subroutine say_hello(a,b)
22+
#^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.attribute-list.fortran
23+
# ^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran keyword.other.subroutine.fortran
24+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran
25+
# ^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran entity.name.function.subroutine.fortran
26+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.first-line.fortran punctuation.definition.parameters.begin.fortran
27+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.first-line.fortran variable.parameter.fortran
28+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.first-line.fortran
29+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.first-line.fortran variable.parameter.fortran
30+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.first-line.fortran punctuation.definition.parameters.end.fortran
31+
> integer :: a,b
32+
#^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran
33+
# ^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran meta.specification.type.fortran storage.type.integer.fortran
34+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran meta.specification.type.fortran meta.attribute-list.fortran
35+
# ^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran meta.specification.type.fortran keyword.operator.double-colon.fortran
36+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran meta.specification.type.fortran meta.name-list.fortran
37+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran
38+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran meta.specification.type.fortran meta.name-list.fortran
39+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran meta.specification.type.fortran meta.name-list.fortran meta.parameter.fortran
40+
>
41+
> print *, "Hello, World!"
42+
#^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran
43+
# ^^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran keyword.control.print.fortran
44+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran
45+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran keyword.operator.power.fortran
46+
# ^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran
47+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran string.quoted.double.fortran punctuation.definition.string.begin.fortran
48+
# ^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran string.quoted.double.fortran
49+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran string.quoted.double.fortran punctuation.definition.string.end.fortran
50+
> end subroutine say_hello
51+
#^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran meta.block.specification.fortran
52+
# ^^^^^^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran keyword.other.endsubroutine.fortran
53+
# ^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran
54+
# ^^^^^^^^^ source.fortran.free meta.program.fortran meta.block.specification.fortran meta.block.contains.fortran meta.subroutine.fortran entity.name.function.subroutine.fortran
55+
>
56+
>
57+
>end program main
58+
#^^^^^^^^^^^ source.fortran.free meta.program.fortran keyword.control.endprogram.fortran
59+
# ^ source.fortran.free meta.program.fortran
60+
# ^^^^ source.fortran.free meta.program.fortran entity.name.program.fortran

0 commit comments

Comments
 (0)