@@ -35,6 +35,7 @@ import System.Exit
35
35
import System.IO
36
36
import System.Process
37
37
import Text.Printf
38
+ import qualified TreeSitter.C as C (tree_sitter_c )
38
39
import qualified TreeSitter.Go as Go (tree_sitter_go )
39
40
import qualified TreeSitter.JSON as JSON (tree_sitter_json )
40
41
import qualified TreeSitter.Java as Java (tree_sitter_java )
@@ -72,6 +73,7 @@ pathForLanguage :: Bazel.Runfiles -> Language -> FilePath
72
73
pathForLanguage rf =
73
74
let loc = Bazel. rlocation rf
74
75
in \ case
76
+ C -> loc " tree-sitter-c/vendor/tree-sitter-c/src/node-types.json"
75
77
CodeQL -> loc " tree-sitter-ql/vendor/tree-sitter-ql/src/node-types.json"
76
78
Go -> loc " tree-sitter-go/vendor/tree-sitter-go/src/node-types.json"
77
79
PHP -> loc " tree-sitter-php/vendor/tree-sitter-php/src/node-types.json"
@@ -88,6 +90,7 @@ targetForLanguage :: Language -> FilePath
88
90
targetForLanguage x =
89
91
let go lc = printf " semantic-%s/src/Language/%s/AST.hs" (lc :: String ) (show x)
90
92
in case x of
93
+ C -> go " c"
91
94
CodeQL -> go " codeql"
92
95
Go -> go " go"
93
96
PHP -> go " php"
@@ -102,6 +105,7 @@ targetForLanguage x =
102
105
parserForLanguage :: Language -> Ptr TreeSitter.Language. Language
103
106
parserForLanguage = \ case
104
107
Unknown -> error " Unknown language encountered"
108
+ C -> C. tree_sitter_c
105
109
CodeQL -> (CodeQL. tree_sitter_ql)
106
110
Go -> Go. tree_sitter_go
107
111
Haskell -> error " Haskell backend not implemented yet"
@@ -121,7 +125,7 @@ parserForLanguage = \case
121
125
-- CodeQL -> r
122
126
123
127
validLanguages :: [Language ]
124
- validLanguages = [CodeQL , Go , Java , PHP , Python , Ruby , TypeScript , TSX ]
128
+ validLanguages = [C , CodeQL , Go , Java , PHP , Python , Ruby , TypeScript , TSX ]
125
129
126
130
emit :: FilePath -> Language -> IO ()
127
131
emit root lang = do
0 commit comments