package catala

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file pygment_lexers.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
(* Generated by: ocaml-crunch
   Creation date: Wed, 24 Sep 2025 13:05:18 GMT *)

module Internal = struct
  let d_67f5f8e062b9d49608c75940bdb69f54 = "from pygments.lexer import RegexLexer, bygroups\nfrom pygments.token import *\n\nimport re\n\n__all__=['CustomLexer']\n\nclass CustomLexer(RegexLexer):\n    name = 'CatalaEn'\n    aliases = ['catala_en']\n    filenames = ['*.catala_en']\n    flags = re.MULTILINE | re.UNICODE\n\n    tokens = {\n        'root' : [\n            (u'(^\\\\s*[\\\\#]+.*)', bygroups(Generic.Heading)),\n            (u'(^\\\\s*[\\\\#]+\\\\s*\\\\[[^\\\\]\\\\n\\\\r]\\\\s*].*)', bygroups(Generic.Heading)),\n            (u'([^`\\\\n\\\\r])', bygroups(Text)),\n            (u'(^```catala$)', bygroups(Text), 'code'),\n            (u'(^```catala-metadata$)', bygroups(Text), 'code'),\n            (u'(^```catala-test-cli$)', bygroups(Text), 'test'),\n            ('(\\n|\\r|\\r\\n)', Whitespace),\n            ('.', Text),\n        ],\n        'code' : [\n            (u'(^```$)', bygroups(Text), 'root'),\n            (u'(\\\\s*\\\\#(|[^[].*)$)', bygroups(Comment.Single)),\n            (u'(\\\\s*\\\\#\\\\[([\\\\\\\\](.|\\n)|[^]\\\\\\\\])*\\\\])', bygroups(Comment.Multi)),\n            (u'(context|input|output|internal)(\\\\s*)(|output)(\\\\s+)([a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xca\\u0152\\xc70-9_\\\\\\']*)', bygroups(Keyword.Declaration, Whitespace, Keyword.Declaration, Whitespace, Name.Variable)),\n            (u'\\\\b(match|with\\\\s+pattern|but\\\\s+replace|fixed|by|down|up|varies|with|we\\\\s+have|let|in|scope|depends\\\\s+on|declaration|includes|content|type|rule|under\\\\s+condition|condition|data|consequence|fulfilled|equals|assertion|definition|state|label|exception|anything)\\\\b', bygroups(Keyword.Reserved)),\n            (u'\\\\b(contains|number|sum|such\\\\s+that|exists|for|all|of|if|then|else|is|list\\\\s+empty|among|maximum|minimum|round|combine|map\\\\s+each|to|initially|impossible)\\\\b', bygroups(Keyword.Declaration)),\n            (u'(\\\\|[0-9]+\\\\-[0-9]+\\\\-[0-9]+\\\\|)', bygroups(Number.Integer)),\n            (u'\\\\b(true|false)\\\\b', bygroups(Keyword.Constant)),\n            (u'\\\\b([0-9]+(,[0-9]*|))\\\\b', bygroups(Number.Integer)),\n            (u'(\\\\-\\\\-|\\\\;|\\\\.|\\\\,|\\\\:|\\\\(|\\\\)|\\\\[|\\\\]|\\\\{|\\\\})', bygroups(Operator)),\n            (u'(\\\\-\\\\>|\\\\+\\\\.|\\\\+\\\\@|\\\\+\\\\^|\\\\+\\\\$|\\\\+|\\\\-\\\\.|\\\\-\\\\@|\\\\-\\\\^|\\\\-\\\\$|\\\\-|\\\\*\\\\.|\\\\*\\\\@|\\\\*\\\\^|\\\\*\\\\$|\\\\*|/\\\\.|/\\\\@|/\\\\$|/|\\\\!|>\\\\.|>=\\\\.|<=\\\\.|<\\\\.|>\\\\@|>=\\\\@|<=\\\\@|<\\\\@|>\\\\$|>=\\\\$|<=\\\\$|<\\\\$|>\\\\^|>=\\\\^|<=\\\\^|<\\\\^|>|>=|<=|<|=|not|or|xor|and|\\\\$|\\u20ac|%|year|month|day)', bygroups(Operator)),\n            (u'\\\\b(structure|enumeration|list\\\\s+of|optional\\\\s+of|integer|boolean|date|duration|money|code_location|decimal)\\\\b', bygroups(Keyword.Type)),\n            (u'\\\\b([A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xca\\u0152\\xc7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xca\\u0152\\xc70-9_\\\\\\']*)(\\\\.)([a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xca\\u0152\\xc70-9_\\\\\\']*)\\\\b', bygroups(Name.Class, Operator, Name.Variable)),\n            (u'\\\\b([a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xca\\u0152\\xc70-9_\\\\\\']*)(\\\\.)([a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xca\\u0152\\xc70-9_\\\\\\'\\\\.]*)\\\\b', bygroups(Name.Variable, Operator, Text)),\n            (u'\\\\b([a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xca\\u0152\\xc70-9_\\\\\\']*)\\\\b', bygroups(Name.Variable)),\n            (u'\\\\b([A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xca\\u0152\\xc7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xca\\u0152\\xc70-9_\\\\\\']*)\\\\b', bygroups(Name.Class)),\n            ('(\\n|\\r|\\r\\n)', Whitespace),\n            ('.', Text),\n        ],\n        'test' : [\n            (u'(^```$)', bygroups(Text), 'root'),\n            (u'(^[$] catala \\\\S*)', bygroups(Keyword.Constant)),\n            ('(\\n|\\r|\\r\\n)', Whitespace),\n            ('.', Text),\n        ]\n    }\n"

  let d_bfa810f91d831e8fcf0091997ab5403e = "from pygments.lexer import RegexLexer, bygroups\nfrom pygments.token import *\n\nimport re\n\n__all__=['CustomLexer']\n\nclass CustomLexer(RegexLexer):\n    name = 'CatalaPl'\n    aliases = ['catala_pl']\n    filenames = ['*.catala_pl']\n    flags = re.MULTILINE | re.UNICODE\n\n    tokens = {\n        'root' : [\n            (u'(^\\s*[\\#]+)', bygroups(Generic.Heading), 'main__1'),\n            (u'(^\\s*[\\#]+\\s*\\[[^\\]]\\s*])', bygroups(Generic.Heading), 'main__2'),\n            (u'([^`\\\\n\\\\r])', bygroups(Text)),\n            (u'(```catala-metadata)', bygroups(Text), 'code'),\n            (u'(```catala)', bygroups(Text), 'code'),\n            ('(\\n|\\r|\\r\\n)', Text),\n            ('.', Text),\n        ],\n        'code' : [\n            (u'(```)', bygroups(Text), 'root'),\n            (u'(\\\\s*\\\\#(|[^[].*)$)', bygroups(Comment.Single)),\n            (u'(\\\\s*\\\\#\\\\[([\\\\\\\\](.|\\n)|[^]\\\\\\\\])*\\\\])', bygroups(Comment.Multi)),\n            (u'(kontekst|wej\\u015bcie|wyj\\u015bcie|wewn\\u0119trzny)(\\\\s*)(|wyj\\u015bcie)(\\\\s+)([a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017a][a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017aA-Z\\u0104\\u0106\\u0118\\u0141\\u0143\\xd3\\u015a\\u017b\\u01790-9_\\\\\\']*)', bygroups(Keyword.Declaration, Text, Keyword.Declaration, Text, Name.Variable)),\n            (u'\\\\b(pasuje|ze\\\\s+wzorem|staloprzecinkowa|przez|malejacy|rosnacy|rozna|wraz z|mamy|w|takich ze|istnieje|dla|wszystkie|z|jezeli|wtedy|inaczej|poczatkowy|niemo\197\188liwe)\\\\b', bygroups(Keyword.Reserved)),\n            (u'\\\\b(zakres|zalezy\\\\s+od|deklaracja|kolekcja|typu|opcjonalny|struktura|enumeracja|kontekst|wej\\u015bcie|wyj\\u015bcie|wewn\\u0119trzny|zasada|pod\\\\s+warunkuem|czas|konsekwencja|spelnione|wynosi|asercja|definicja|stan|etykieta|wyj\\u0105tek|cokolwiek)\\\\b', bygroups(Keyword.Declaration)),\n            (u'(\\\\|[0-9]+\\\\-[0-9]+\\\\-[0-9]+\\\\|)', bygroups(Number.Integer)),\n            (u'\\\\b(prawda|falsz)\\\\b', bygroups(Keyword.Constant)),\n            (u'\\\\b([0-9]+(,[0-9]*|))\\\\b', bygroups(Number.Integer)),\n            (u'(\\\\-\\\\-|\\\\;|\\\\.|\\\\,|\\\\:|\\\\(|\\\\)|\\\\[|\\\\]|\\\\{|\\\\})', bygroups(Operator)),\n            (u'(\\\\-\\\\>|\\\\+\\\\.|\\\\+\\\\@|\\\\+\\\\^|\\\\+\\\\$|\\\\+|\\\\-\\\\.|\\\\-\\\\@|\\\\-\\\\^|\\\\-\\\\$|\\\\-|\\\\*\\\\.|\\\\*\\\\@|\\\\*\\\\^|\\\\*\\\\$|\\\\*|/\\\\.|/\\\\@|/\\\\^|/\\\\$|/|\\\\!|>\\\\.|>=\\\\.|<=\\\\.|<\\\\.|>\\\\@|>=\\\\@|<=\\\\@|<\\\\@|>\\\\$|>=\\\\$|<=\\\\$|<\\\\$|>\\\\^|>=\\\\^|<=\\\\^|<\\\\^|>|>=|<=|<|=|nie|lub|xor|i|\\\\$|%|rok|miesiac|dzien)', bygroups(Operator)),\n            (u'\\\\b(calkowita|zerojedynkowy|czas|czas trwania|pieni\196\133dze|warunek|tekst|dziesi\\u0119tny|suma)\\\\b', bygroups(Keyword.Type)),\n            (u'\\\\b([A-Z\\u0104\\u0106\\u0118\\u0141\\u0143\\xd3\\u015a\\u017b\\u0179][a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017aA-Z\\u0104\\u0106\\u0118\\u0141\\u0143\\xd3\\u015a\\u017b\\u01790-9_\\\\\\']*)(\\\\.)([a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017a][a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017aA-Z\\u0104\\u0106\\u0118\\u0141\\u0143\\xd3\\u015a\\u017b\\u01790-9_\\\\\\']*)\\\\b', bygroups(Name.Class, Operator, Name.Variable)),\n            (u'\\\\b([a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017a][a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017aA-Z\\u0104\\u0106\\u0118\\u0141\\u0143\\xd3\\u015a\\u017b\\u01790-9_\\\\\\']*)(\\\\.)([a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017a][a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017aA-Z\\u0104\\u0106\\u0118\\u0141\\u0143\\xd3\\u015a\\u017b\\u01790-9_\\\\\\'\\\\.]*)\\\\b', bygroups(Name.Variable, Operator, Text)),\n            (u'\\\\b([a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017a][a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017aA-Z\\u0104\\u0106\\u0118\\u0141\\u0143\\xd3\\u015a\\u017b\\u01790-9_\\\\\\']*)\\\\b', bygroups(Name.Variable)),\n            (u'\\\\b([A-Z\\u0104\\u0106\\u0118\\u0141\\u0143\\xd3\\u015a\\u017b\\u0179][a-z\\u0105\\u0107\\u0119\\u0142\\u0144\\xf3\\u015b\\u017c\\u017aA-Z\\u0104\\u0106\\u0118\\u0141\\u0143\\xd3\\u015a\\u017b\\u01790-9_\\\\\\']*)\\\\b', bygroups(Name.Class)),\n            ('(\\n|\\r|\\r\\n)', Text),\n            ('.', Text),\n        ],\n        'main__1': [\n            (u'(\\n)', bygroups(Generic.Heading), 'root'),\n            (u'(.)', bygroups(Generic.Heading)),\n            ('(\\n|\\r|\\r\\n)', Text),\n            ('.', "

  let d_c636d16a303069aedbea65cd98cc39fd = "from pygments.lexer import RegexLexer, bygroups\nfrom pygments.token import *\n\nimport re\n\n__all__=['CustomLexer']\n\nclass CustomLexer(RegexLexer):\n    name = 'CatalaFr'\n    aliases = ['catala_fr']\n    filenames = ['*.catala_fr']\n    flags = re.MULTILINE | re.UNICODE\n\n    tokens = {\n        'root' : [\n            (u'(^\\\\s*[\\\\#]+.*)', bygroups(Generic.Heading)),\n            (u'(^\\\\s*[\\\\#]+\\\\s*\\\\[[^\\\\]\\\\n\\\\r]\\\\s*].*)', bygroups(Generic.Heading)),\n            (u'([^`\\\\n\\\\r])', bygroups(Text)),\n            (u'(^```catala$)', bygroups(Text), 'code'),\n            (u'(^```catala-metadata$)', bygroups(Text), 'code'),\n            (u'(^```catala-test-cli$)', bygroups(Text), 'test'),\n            ('(\\n|\\r|\\r\\n)', Whitespace),\n            ('.', Text),\n        ],\n        'code' : [\n            (u'(^```$)', bygroups(Text), 'root'),\n            (u'(\\\\s*\\\\#(|[^[].*)$)', bygroups(Comment.Single)),\n            (u'(\\\\s*\\\\#\\\\[([\\\\\\\\](.|\\n)|[^]\\\\\\\\])*\\\\])', bygroups(Comment.Multi)),\n            (u'(contexte|entr\\xe9e|r\\xe9sultat|interne)(\\\\s*)(|r\\xe9sultat)(\\\\s+)([a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xd4\\xca\\u0152\\xc70-9_\\\\\\']*)', bygroups(Keyword.Declaration, Whitespace, Keyword.Declaration, Whitespace, Name.Variable)),\n            (u'\\\\b(selon|sous\\\\s+forme|mais\\\\s+en\\\\s+rempla\\xe7ant|fix\\xe9|par|inf\\xe9rieur|sup\\xe9rieur|varie|avec|on\\\\s+a|soit|dans|champ\\\\s+d\\'application|d\\xe9pend\\\\s+de|d\\xe9claration|inclusion|contenu|type|r\\xe8gle|sous\\\\s+condition|condition|donn\\xe9e|cons\\xe9quence|rempli|\\xe9gal\\\\s+\\xe0|assertion|d\\xe9finition|\\xe9tat|\\xe9tiquette|exception|n\\'importe\\\\s+quel)\\\\b', bygroups(Keyword.Reserved)),\n            (u'\\\\b(contient|nombre|somme|tel\\\\s+que|existe|pour|tout|de|si|alors|sinon|est|liste\\\\s+vide|parmi|maximum|minimum|arrondi|combine|transforme\\\\s+chaque|en|initialement|impossible)\\\\b', bygroups(Keyword.Declaration)),\n            (u'(\\\\|[0-9]+\\\\-[0-9]+\\\\-[0-9]+\\\\|)', bygroups(Number.Integer)),\n            (u'\\\\b(vrai|faux)\\\\b', bygroups(Keyword.Constant)),\n            (u'\\\\b([0-9]+(,[0-9]*|))\\\\b', bygroups(Number.Integer)),\n            (u'(\\\\-\\\\-|\\\\;|\\\\.|\\\\,|\\\\:|\\\\(|\\\\)|\\\\[|\\\\]|\\\\{|\\\\})', bygroups(Operator)),\n            (u'(\\\\-\\\\>|\\\\+\\\\.|\\\\+\\\\@|\\\\+\\\\^|\\\\+\\u20ac|\\\\+|\\\\-\\\\.|\\\\-\\\\@|\\\\-\\\\^|\\\\-\\u20ac|\\\\-|\\\\*\\\\.|\\\\*\\\\@|\\\\*\\\\^|\\\\*\\u20ac|\\\\*|/\\\\.|/\\\\@|/\\u20ac|/|\\\\!|>\\\\.|>=\\\\.|<=\\\\.|<\\\\.|>\\\\@|>=\\\\@|<=\\\\@|<\\\\@|>\\u20ac|>=\\u20ac|<=\\u20ac|<\\u20ac|>\\\\^|>=\\\\^|<=\\\\^|<\\\\^|>|>=|<=|<|=|\\u20ac|%)', bygroups(Operator)),\n            (u'\\\\b(non|ou\\\\s+bien|ou|et|an|mois|jour)\\\\b', bygroups(Operator)),\n            (u'\\\\b(structure|\\xe9num\\xe9ration|liste\\\\s+de|optionnel\\\\s+de|entier|bool\\xe9en|date|dur\\xe9e|argent|position_source|d\\xe9cimal|d\\xe9cret|loi|nombre|somme)\\\\b', bygroups(Keyword.Type)),\n            (u'\\\\b([A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xd4\\xca\\u0152\\xc7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xd4\\xca\\u0152\\xc70-9_\\\\\\']*)(\\\\.)([a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xd4\\xca\\u0152\\xc70-9_\\\\\\']*)\\\\b', bygroups(Name.Class, Operator, Name.Variable)),\n            (u'\\\\b([a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xd4\\xca\\u0152\\xc70-9_\\\\\\']*)(\\\\.)([a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xd4\\xca\\u0152\\xc70-9_\\\\\\'\\\\.]*)\\\\b', bygroups(Name.Variable, Operator, Text)),\n            (u'\\\\b([a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xd4\\xca\\u0152\\xc70-9_\\\\\\']*)\\\\b', bygroups(Name.Variable)),\n            (u'\\\\b([A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xd4\\xca\\u0152\\xc7][a-z\\xe9\\xe8\\xe0\\xe2\\xf9\\xee\\xf4\\xea\\u0153\\xe7A-Z\\xc9\\xc8\\xc0\\xc2\\xd9\\xce\\xd4\\xca\\u0152\\xc70-9_\\\\\\']*)\\\\b', bygroups(Name.Class)),\n            ('(\\n|\\r|\\r\\n)', Whitespace),\n            ('.', Text),\n        ],\n        'test' : [\n            (u'(^```$)', bygroups(Text), 'ro"

  let d_d984c40fe0ed3c85490e509267a86251 = "Text),\n        ],\n        'main__2': [\n            (u'(\\n)', bygroups(Generic.Heading), 'root'),\n            (u'(.)', bygroups(Generic.Heading)),\n            ('(\\n|\\r|\\r\\n)', Text),\n            ('.', Text),\n        ]\n    }\n\n"

  let d_dbd62d6ff6c9d335ca83ea2cf9e44745 = "ot'),\n            (u'(^[$] catala \\\\S*)', bygroups(Keyword.Constant)),\n            ('(\\n|\\r|\\r\\n)', Whitespace),\n            ('.', Text),\n        ]\n    }\n"

  let file_chunks = function
    | "lexer_en.py" | "/lexer_en.py" -> Some [ d_67f5f8e062b9d49608c75940bdb69f54; ]
    | "lexer_fr.py" | "/lexer_fr.py" -> Some [ d_c636d16a303069aedbea65cd98cc39fd; d_dbd62d6ff6c9d335ca83ea2cf9e44745; ]
    | "lexer_pl.py" | "/lexer_pl.py" -> Some [ d_bfa810f91d831e8fcf0091997ab5403e; d_d984c40fe0ed3c85490e509267a86251; ]
    | _ -> None

  let file_list = [ "lexer_en.py"; "lexer_fr.py"; "lexer_pl.py"; ]
end

let file_list = Internal.file_list

let read name =
  match Internal.file_chunks name with
  | None -> None
  | Some c -> Some (String.concat "" c)

let hash = function
  | "lexer_en.py" | "/lexer_en.py" -> Some "67f5f8e062b9d49608c75940bdb69f54"
  | "lexer_fr.py" | "/lexer_fr.py" -> Some "f04f8453ae9ca95eddd7c578c0031c42"
  | "lexer_pl.py" | "/lexer_pl.py" -> Some "fbac8d8b75585bfbd4c7a6ad28a42bed"
  | _ -> None

let size = function
  | "lexer_en.py" | "/lexer_en.py" -> Some 3927
  | "lexer_fr.py" | "/lexer_fr.py" -> Some 4250
  | "lexer_pl.py" | "/lexer_pl.py" -> Some 4320
  | _ -> None