From 930aa7d2289232426d24a4f0628bd1bd431a97ed Mon Sep 17 00:00:00 2001 From: Rien Maertens Date: Wed, 15 Nov 2023 14:09:53 +0100 Subject: [PATCH] Fix tree-sitter-r parser --- .gitmodules | 2 +- cli/package.json | 12 +- lib/src/test/snapshots/tokenizer.test.ts.md | 631 ++++++++++++++++++ lib/src/test/snapshots/tokenizer.test.ts.snap | Bin 99535 -> 102697 bytes parsers/r | 2 +- yarn.lock | 81 +-- 6 files changed, 636 insertions(+), 92 deletions(-) diff --git a/.gitmodules b/.gitmodules index a5b042471..d2d6c6ac4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -33,5 +33,5 @@ url = git@github.com:OpenModelica/tree-sitter-modelica.git [submodule "parsers/r"] path = parsers/r - url = git@github.com:r-lib/tree-sitter-r.git + url = git@github.com:rien/tree-sitter-r.git branch = next diff --git a/cli/package.json b/cli/package.json index 00a370f49..ae8fb931e 100644 --- a/cli/package.json +++ b/cli/package.json @@ -38,23 +38,13 @@ "dependencies": { "@dodona/dolos-lib": "3.0.0", "@dodona/dolos-web": "2.4.2", - "@elm-tooling/tree-sitter-elm": "^5.6.6", "chalk": "^5.0.0", "cliui": "^8.0.0", "commander": "^11.0.0", "csv-stringify": "^6.2.0", "express": "^4.17.1", "open": "^9.0.0", - "tree-sitter": "^0.20.0", - "tree-sitter-bash": "^0.20.3", - "tree-sitter-c": "^0.20.1", - "tree-sitter-c-sharp": "^0.20.0", - "tree-sitter-cpp": "^0.20.0", - "tree-sitter-javascript": "^0.20.0", - "tree-sitter-java": "^0.20.0", - "tree-sitter-php": "^0.19.0", - "tree-sitter-python": "^0.20.1", - "tree-sitter-typescript": "^0.20.0" + "tree-sitter": "^0.20.6" }, "bugs": { "url": "https://github.com/dodona-edu/dolos/issues" diff --git a/lib/src/test/snapshots/tokenizer.test.ts.md b/lib/src/test/snapshots/tokenizer.test.ts.md index 6d28ffcb2..fec280caf 100644 --- a/lib/src/test/snapshots/tokenizer.test.ts.md +++ b/lib/src/test/snapshots/tokenizer.test.ts.md @@ -17374,6 +17374,637 @@ Generated by [AVA](https://avajs.dev). ')', ] +## tokenizer works for r + +> stable tokenization + + [ + '(', + 'program', + '(', + 'identifier', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'function', + '(', + 'parameters', + '(', + 'parameter', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'parameter', + '(', + 'identifier', + ')', + ')', + ')', + '(', + 'block', + '(', + 'comment', + ')', + '(', + 'if', + '(', + 'identifier', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'block', + '(', + 'identifier', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'float', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'identifier', + ')', + ')', + ')', + '(', + 'identifier', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + '(', + 'string', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + '(', + 'string', + ')', + ')', + ')', + ')', + '(', + 'identifier', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'argument', + '(', + 'float', + ')', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'argument', + '(', + 'float', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'float', + ')', + ')', + ')', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'float', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'argument', + '(', + 'float', + ')', + ')', + ')', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + '(', + 'string', + ')', + ')', + ')', + ')', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + ')', + ')', + ')', + ')', + '(', + 'comment', + ')', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'string', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'float', + ')', + ')', + ')', + ')', + ')', + ')', + ')', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'string', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'float', + ')', + ')', + ')', + ')', + ')', + ')', + ')', + '(', + 'comment', + ')', + '(', + 'identifier', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'float', + ')', + '(', + 'identifier', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'string', + ')', + '(', + 'identifier', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + ')', + ')', + '(', + 'identifier', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'ERROR', + '(', + 'ERROR', + ')', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + ')', + ')', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'string', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + '(', + 'string', + ')', + ')', + ')', + ')', + ')', + ')', + ')', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'string', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + '(', + 'string', + ')', + ')', + ')', + ')', + ')', + ')', + ')', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'call', + '(', + 'identifier', + ')', + '(', + 'arguments', + '(', + 'argument', + '(', + 'string', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + ')', + '(', + 'comma', + ')', + '(', + 'argument', + '(', + 'identifier', + ')', + '(', + 'string', + ')', + ')', + ')', + ')', + ')', + ')', + ')', + ')', + ] + ## tokenizer works for tsx > stable tokenization diff --git a/lib/src/test/snapshots/tokenizer.test.ts.snap b/lib/src/test/snapshots/tokenizer.test.ts.snap index 90173c342b6c1210b75dffa9a62725d9c69bfa6c..76e15dc4ea843b6f81e3763f24f2f02d8985eb08 100644 GIT binary patch delta 23486 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 delta 20300 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