diff --git a/lib/kernel/comby_kernel.mli b/lib/kernel/comby_kernel.mli index 4c5f7f7a..9a68e15f 100644 --- a/lib/kernel/comby_kernel.mli +++ b/lib/kernel/comby_kernel.mli @@ -653,6 +653,7 @@ module Matchers : sig module Fsharp : Language.S module Pascal : Language.S module Julia : Language.S + module Lua : Language.S module Fortran : Language.S module Haskell : Language.S module HCL : Language.S @@ -716,6 +717,7 @@ module Matchers : sig module Fsharp : Matcher.S module Pascal : Matcher.S module Julia : Matcher.S + module Lua : Matcher.S module Fortran : Matcher.S module Haskell : Matcher.S module HCL : Matcher.S diff --git a/lib/kernel/matchers/engine.ml b/lib/kernel/matchers/engine.ml index e7aa406f..1ccf11c5 100644 --- a/lib/kernel/matchers/engine.ml +++ b/lib/kernel/matchers/engine.ml @@ -78,6 +78,7 @@ module Make (Make : Types.Language.S -> Types.Metasyntax.S -> Types.External.S - module Fsharp = Make (Fsharp) (Metasyntax.Default) (External.Default) module Pascal = Make (Pascal) (Metasyntax.Default) (External.Default) module Julia = Make (Julia) (Metasyntax.Default) (External.Default) + module Lua = Make (Lua) (Metasyntax.Default) (External.Default) module Fortran = Make (Fortran) (Metasyntax.Default) (External.Default) module Haskell = Make (Haskell) (Metasyntax.Default) (External.Default) module HCL = Make (HCL) (Metasyntax.Default) (External.Default) @@ -115,6 +116,7 @@ module Make (Make : Types.Language.S -> Types.Metasyntax.S -> Types.External.S - ; (module GraphQL) ; (module Dhall) ; (module Julia) + ; (module Lua) ; (module Kotlin) ; (module Latex) ; (module Lisp) diff --git a/lib/kernel/matchers/languages.ml b/lib/kernel/matchers/languages.ml index 3ec462a2..bf6eb9bb 100644 --- a/lib/kernel/matchers/languages.ml +++ b/lib/kernel/matchers/languages.ml @@ -789,6 +789,31 @@ module Julia = struct end end +module Lua = struct + module Info = struct + let name = "Lua" + let extensions = [".lua"] + end + + module Syntax = struct + include Generic.Syntax + + let user_defined_delimiters = + Generic.Syntax.user_defined_delimiters + @ + [ "if", "end" + ; "for", "end" + ; "function", "end" + ; "do", "end" + ; "while", "end" + ; "until", "end" + ] + let comments = + [ Until_newline "--" + ] + end +end + module Matlab = struct module Info = struct let name = "MATLAB" diff --git a/lib/kernel/matchers/languages.mli b/lib/kernel/matchers/languages.mli index c6237381..4de14076 100644 --- a/lib/kernel/matchers/languages.mli +++ b/lib/kernel/matchers/languages.mli @@ -43,6 +43,7 @@ module Reason : Language.S module Fsharp : Language.S module Pascal : Language.S module Julia : Language.S +module Lua : Language.S module Fortran : Language.S module HCL : Language.S module Haskell : Language.S diff --git a/lib/kernel/matchers/types.ml b/lib/kernel/matchers/types.ml index 0f67d003..f2cf0600 100644 --- a/lib/kernel/matchers/types.ml +++ b/lib/kernel/matchers/types.ml @@ -288,6 +288,7 @@ module Engine = struct module Fsharp : Matcher.S module Pascal : Matcher.S module Julia : Matcher.S + module Lua : Matcher.S module Fortran : Matcher.S module Haskell : Matcher.S module HCL : Matcher.S diff --git a/test/common/test_cli_list.ml b/test/common/test_cli_list.ml index 5a7971e5..62ec846a 100644 --- a/test/common/test_cli_list.ml +++ b/test/common/test_cli_list.ml @@ -32,6 +32,7 @@ let%expect_test "list_languages" = -matcher .gql GraphQL -matcher .dhall Dhall -matcher .jl Julia + -matcher .lua Lua -matcher .kt Kotlin -matcher .tex LaTeX -matcher .lisp Lisp