diff --git a/README.md b/README.md index 1687f88..95e095e 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ translators for Pygments lexers and styles. | Prefix | Language | | :----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| A | ABAP, ABNF, ActionScript, ActionScript 3, Ada, AL, Angular2, ANTLR, ApacheConf, APL, AppleScript, ArangoDB AQL, Arduino, ArmAsm, AutoHotkey, AutoIt, Awk | +| A | ABAP, ABNF, ActionScript, ActionScript 3, Ada, Agda, AL, Angular2, ANTLR, ApacheConf, APL, AppleScript, ArangoDB AQL, Arduino, ArmAsm, AutoHotkey, AutoIt, Awk | | B | Ballerina, Bash, Bash Session, Batchfile, BibTeX, Bicep, BlitzBasic, BNF, BQN, Brainfuck | | C | C, C#, C++, Caddyfile, Caddyfile Directives, Cap'n Proto, Cassandra CQL, Ceylon, CFEngine3, cfstatement, ChaiScript, Chapel, Cheetah, Clojure, CMake, COBOL, CoffeeScript, Common Lisp, Coq, Crystal, CSS, Cython | | D | D, Dart, Dax, Diff, Django/Jinja, dns, Docker, DTD, Dylan | diff --git a/lexers/embedded/agda.xml b/lexers/embedded/agda.xml new file mode 100644 index 0000000..6f2b2d5 --- /dev/null +++ b/lexers/embedded/agda.xml @@ -0,0 +1,66 @@ + + + Agda + agda + *.agda + text/x-agda + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lexers/testdata/agda.actual b/lexers/testdata/agda.actual new file mode 100644 index 0000000..e8a017d --- /dev/null +++ b/lexers/testdata/agda.actual @@ -0,0 +1,12 @@ +module hello-world where + +open import Agda.Builtin.IO using (IO) +open import Agda.Builtin.Unit using (⊤) +open import Agda.Builtin.String using (String) + +postulate putStrLn : String → IO ⊤ +{-# FOREIGN GHC import qualified Data.Text as T #-} +{-# COMPILE GHC putStrLn = putStrLn . T.unpack #-} + +main : IO ⊤ +main = putStrLn "Hello world!" diff --git a/lexers/testdata/agda.expected b/lexers/testdata/agda.expected new file mode 100644 index 0000000..3ac6499 --- /dev/null +++ b/lexers/testdata/agda.expected @@ -0,0 +1,79 @@ +[ + {"type":"KeywordReserved","value":"module"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"hello"}, + {"type":"Text","value":"-world"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordReserved","value":"where"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"KeywordReserved","value":"open"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordReserved","value":"import"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"Agda.Builtin.IO"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordReserved","value":"using"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Text","value":"IO"}, + {"type":"Operator","value":")"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"KeywordReserved","value":"open"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordReserved","value":"import"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"Agda.Builtin.Unit"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordReserved","value":"using"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Text","value":"⊤"}, + {"type":"Operator","value":")"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"KeywordReserved","value":"open"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordReserved","value":"import"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Name","value":"Agda.Builtin.String"}, + {"type":"TextWhitespace","value":" "}, + {"type":"KeywordReserved","value":"using"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Operator","value":"("}, + {"type":"Text","value":"String"}, + {"type":"Operator","value":")"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"KeywordReserved","value":"postulate"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Text","value":"putStrLn"}, + {"type":"TextWhitespace","value":" "}, + {"type":"OperatorWord","value":":"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Text","value":"String"}, + {"type":"TextWhitespace","value":" "}, + {"type":"OperatorWord","value":"→"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Text","value":"IO"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Text","value":"⊤"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentMultiline","value":"{-# FOREIGN GHC import qualified Data.Text as T #-}"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"CommentMultiline","value":"{-# COMPILE GHC putStrLn = putStrLn . T.unpack #-}"}, + {"type":"TextWhitespace","value":"\n\n"}, + {"type":"NameFunction","value":"main"}, + {"type":"TextWhitespace","value":" "}, + {"type":"OperatorWord","value":":"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Text","value":"IO"}, + {"type":"TextWhitespace","value":" "}, + {"type":"Text","value":"⊤"}, + {"type":"TextWhitespace","value":"\n"}, + {"type":"Text","value":"main"}, + {"type":"TextWhitespace","value":" "}, + {"type":"OperatorWord","value":"="}, + {"type":"TextWhitespace","value":" "}, + {"type":"Text","value":"putStrLn"}, + {"type":"TextWhitespace","value":" "}, + {"type":"LiteralString","value":"\"Hello world!\""}, + {"type":"TextWhitespace","value":"\n"} +]