123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866openCoreopenTypes.Syntaxletordinary_string=Some{delimiters=[{|"|}];escape_character='\\'}moduleText=structmoduleInfo=structletname="Text"letextensions=[".txt";".md";".rst";".org"]endmoduleSyntax=structletuser_defined_delimiters=[]letescapable_string_literals=Noneletraw_string_literals=[]letcomments=[]endendmoduleParen=structmoduleInfo=structletname="Paren"letextensions=[".paren"]endmoduleSyntax=structincludeText.Syntaxletuser_defined_delimiters=["(",")"]endendmoduleDyck=structmoduleInfo=structletname="Dyck"letextensions=[".dyck"]endmoduleSyntax=structletuser_defined_delimiters=["(",")";"{","}";"[","]"]letescapable_string_literals=Noneletraw_string_literals=[]letcomments=[]endendmoduleLatex=structmoduleInfo=structletname="LaTeX"letextensions=[".tex";".bib"]endmoduleSyntax=structincludeDyck.Syntaxletuser_defined_delimiters=Dyck.Syntax.user_defined_delimiters@[{|\if|},{|\fi|}]letcomments=[Until_newline"%"]endendmoduleAssembly=structmoduleInfo=structletname="Assembly"letextensions=[".s";".asm"]endmoduleSyntax=structincludeDyck.Syntaxletcomments=[Until_newline";"]endendmoduleClojure=structmoduleInfo=structletname="Clojure"letextensions=[".clj"]endmoduleSyntax=structincludeDyck.Syntaxletescapable_string_literals=ordinary_stringletcomments=[Until_newline";"]endendmoduleLisp=structmoduleInfo=structletname="Lisp"letextensions=[".lisp"]endmoduleSyntax=structincludeClojure.Syntaxletcomments=Clojure.Syntax.comments@[Nested_multiline("#|","|#")]endendmoduleGeneric=structmoduleInfo=structletname="Generic"letextensions=[".generic"]endmoduleSyntax=structincludeDyck.Syntaxletescapable_string_literals=Some{delimiters=[{|"|};{|'|}];escape_character='\\'}endendmoduleJSON=structmoduleInfo=structletname="JSON"letextensions=[".json"]endmoduleSyntax=Generic.SyntaxendmoduleJSONC=structmoduleInfo=structletname="JSONC"letextensions=[".jsonc"]endmoduleSyntax=structincludeGeneric.Syntaxletcomments=[Multiline("/*","*/");Until_newline"//"]endendmoduleGraphQL=structmoduleInfo=structletname="GraphQL"letextensions=[".gql";".graphql"]endmoduleSyntax=structincludeGeneric.Syntaxletcomments=[Until_newline"#"]endendmoduleDhall=structmoduleInfo=structletname="Dhall"letextensions=[".dhall"]endmoduleSyntax=structincludeGeneric.Syntaxletraw_string_literals=[("''","''");("`","`")]letcomments=[Until_newline"--";Nested_multiline("{-","-}")]endendmoduleBash=structmoduleInfo=structletname="Bash"letextensions=[".sh"]endmoduleSyntax=structincludeGeneric.Syntaxletuser_defined_delimiters=Dyck.Syntax.user_defined_delimiters@["if","fi";"case","esac";"for","done";"until","done";"while","done"]letcomments=[Until_newline"#"]endendmoduleRuby=structmoduleInfo=structletname="Ruby"letextensions=[".rb"]endmoduleSyntax=structincludeGeneric.Syntaxletuser_defined_delimiters=Generic.Syntax.user_defined_delimiters@["class","end";"def","end";"do","end";"if","end";"case","end";"unless","end";"while","end";"until","end";"for","end";"begin","end";"module","end"]letraw_string_literals=[({|"|},{|"|})]letcomments=[Multiline("=begin","=end");Until_newline"#"]endendmoduleElixir=structmoduleInfo=structletname="Elixir"letextensions=[".ex"]endmoduleSyntax=structincludeGeneric.Syntaxletuser_defined_delimiters=Generic.Syntax.user_defined_delimiters@["fn","end";"do","end"]letraw_string_literals=[({|"""|},{|"""|})]letcomments=[Until_newline"#"]endendmodulePython=structmoduleInfo=structletname="Python"letextensions=[".py";".pyi"]endmoduleSyntax=structincludeGeneric.Syntaxletraw_string_literals=[({|'''|},{|'''|});({|"""|},{|"""|})]letcomments=[Until_newline"#"]endendmoduleHtml=structmoduleInfo=structletname="HTML"letextensions=[".html"]endmoduleSyntax=structincludeGeneric.Syntaxletuser_defined_delimiters=Dyck.Syntax.user_defined_delimiters@["<",">"]letcomments=[Multiline("<!--","-->")]endendmoduleXml=structmoduleInfo=structletname="XML"letextensions=[".xml"]endmoduleSyntax=Html.SyntaxendmoduleSQL=structmoduleInfo=structletname="SQL"letextensions=[".sql"]endmoduleSyntax=structincludeGeneric.Syntaxletcomments=[Multiline("/*","*/");Until_newline"--"]endendmoduleErlang=structmoduleInfo=structletname="Erlang"letextensions=[".erl"]endmoduleSyntax=structincludeGeneric.Syntaxletuser_defined_delimiters=Generic.Syntax.user_defined_delimiters@["fun","end";"case","end";"if","end"]letcomments=[Until_newline"%"]endendmoduleC=structmoduleInfo=structletname="C"letextensions=[".c";".h";".cc";".cpp";".hpp"]endmoduleSyntax=structincludeGeneric.Syntaxletcomments=[Multiline("/*","*/");Until_newline"//"]endendmoduleCsharp=structmoduleInfo=structletname="C#"letextensions=[".cs"]endmoduleSyntax=C.SyntaxendmoduleJava=structmoduleInfo=structletname="Java"letextensions=[".java"]endmoduleSyntax=C.SyntaxendmoduleCSS=structmoduleInfo=structletname="CSS"letextensions=[".css"]endmoduleSyntax=C.SyntaxendmoduleKotlin=structmoduleInfo=structletname="Kotlin"letextensions=[".kt";".kts"]endmoduleSyntax=C.SyntaxendmoduleScala=structmoduleInfo=structletname="Scala"letextensions=[".scala"]endmoduleSyntax=C.SyntaxendmoduleNim=structmoduleInfo=structletname="Nim"letextensions=[".nim"]endmoduleSyntax=structincludeDyck.Syntax(* Excludes ' as escapable string literal, since these can be used in
as type suffixes like 'i8 *)letescapable_string_literals=ordinary_string(* Not supported: "raw" string literals as defined in https://nim-lang.org/docs/manual.html#lexical-analysis-raw-string-literals where r"a""b" means the two "" are escaped to single *)(* Not supported: generalized raw string literals as in https://nim-lang.org/docs/manual.html#lexical-analysis-raw-string-literals that needs more special casing in the lexer *)letraw_string_literals=[({|"""|},{|"""|})]letcomments=[Until_newline"#";Nested_multiline("#[","]#")]endendmoduleDart=structmoduleInfo=structletname="Dart"letextensions=[".dart"]endmoduleSyntax=structincludeC.Syntaxletraw_string_literals=[({|"""|},{|"""|});({|'''|},{|'''|})]endendmodulePhp=structmoduleInfo=structletname="PHP"letextensions=[".php"]endmoduleSyntax=structincludeC.Syntaxletcomments=C.Syntax.comments@[Until_newline"#"]endendmoduleGo=structmoduleInfo=structletname="Go"letextensions=[".go"]endmoduleSyntax=structincludeC.Syntaxletraw_string_literals=[({|`|},{|`|})]endendmoduleSolidity=structmoduleInfo=structletname="Solidity"letextensions=[".sol"]end(* Note this doesn't take care of multiple concatenated strings:
https://github.com/ethereum/solidity/issues/7292 *)moduleSyntax=C.SyntaxendmoduleJavascript=structmoduleInfo=structletname="JavaScript"letextensions=[".js"]endmoduleSyntax=structincludeDyck.Syntaxletraw_string_literals=[({|`|},{|`|})]letescapable_string_literals=Some{delimiters=[{|"|};{|'|}];escape_character='\\'}letcomments=[Multiline("/*","*/");Until_newline"//"]endendmoduleTypescript=structmoduleInfo=structletname="TypeScript"letextensions=[".ts"]endmoduleSyntax=Javascript.SyntaxendmoduleJsx=structmoduleInfo=structletname="JSX"letextensions=[".jsx"]endmoduleSyntax=Javascript.SyntaxendmoduleTsx=structmoduleInfo=structletname="TSX"letextensions=[".tsx"]endmoduleSyntax=Typescript.SyntaxendmoduleSwift=structmoduleInfo=structletname="Swift"letextensions=[".swift"]endmoduleSyntax=structincludeGeneric.Syntaxletcomments=[Nested_multiline("/*","*/");Until_newline"//"]endendmoduleRust=structmoduleInfo=structletname="Rust"letextensions=[".rs"]endmoduleSyntax=structincludeGeneric.Syntax(* Excludes ' as escapable string literal, since these can be used in
typing. *)letescapable_string_literals=ordinary_stringletraw_string_literals=[{|r#|},{|#|}]letcomments=[Nested_multiline("/*","*/");Until_newline"//"]endendmoduleMove=structmoduleInfo=structletname="Move"letextensions=[".move"]endmoduleSyntax=structincludeGeneric.Syntaxletescapable_string_literals=ordinary_stringletcomments=[Nested_multiline("/*","*/");Until_newline"//"]endendmoduleOCaml=structmoduleInfo=structletname="OCaml"letextensions=[".ml";".mli"]endmoduleSyntax=structincludeGeneric.Syntaxletuser_defined_delimiters=Generic.Syntax.user_defined_delimiters@["begin","end";"struct","end";"sig","end"](* Excludes ' as escapable string literal, since these can be used in
typing. *)letescapable_string_literals=ordinary_stringletraw_string_literals=[("{|","|}")]letcomments=[Nested_multiline("(*","*)")]endendmoduleReason=structmoduleInfo=structletname="Reason"letextensions=[".re";".rei"]endmoduleSyntax=structincludeGeneric.Syntaxletuser_defined_delimiters=Generic.Syntax.user_defined_delimiters(* Excludes ' as escapable string literal, since these can be used in
typing. *)letescapable_string_literals=ordinary_stringletcomments=[Nested_multiline("/*","*/")]endendmoduleCoq=structmoduleInfo=structletname="Coq"letextensions=[".v"]endmoduleSyntax=structincludeGeneric.Syntaxletuser_defined_delimiters=Generic.Syntax.user_defined_delimiters@["{|","|}";"Proof","Qed";"Proof","Defined";"match","end"](* Excludes ' as escapable string literal, since these can be used in
typing. *)letescapable_string_literals=ordinary_stringletcomments=[Nested_multiline("(*","*)")]endendmoduleFsharp=structmoduleInfo=structletname="F#"letextensions=[".fsx"]endmoduleSyntax=OCaml.Syntaxend(** Follow Free Pascal that allows nested comments, although Rosetta takes the opposite view. *)modulePascal=structmoduleInfo=structletname="Pascal"letextensions=[".pas"]endmoduleSyntax=structincludeGeneric.Syntaxletcomments=[Nested_multiline("(*","*)");Nested_multiline("{","}");Until_newline"//"]endendmoduleJulia=structmoduleInfo=structletname="Julia"letextensions=[".jl"]endmoduleSyntax=structincludeGeneric.Syntaxletuser_defined_delimiters=Generic.Syntax.user_defined_delimiters@["if","end";"for","end";"while","end";"try","end";"struct","end";"begin","end";"let","end"]letcomments=[Nested_multiline("#=","=#");Until_newline"#"]endendmoduleFortran=structmoduleInfo=structletname="Fortran"letextensions=[".f";".for";".f90";".f95";".f03";".f08";".F";".F90"]endmoduleSyntax=structincludeGeneric.Syntaxletcomments=[Until_newline"!"]endendmoduleHaskell=structmoduleInfo=structletname="Haskell"letextensions=[".hs"]endmoduleSyntax=structincludeGeneric.Syntaxletraw_string_literals=[({|"""|},{|"""|})](* Excludes ' as escapable string literal, since these can be used in
identifiers. *)letescapable_string_literals=ordinary_stringletcomments=[Multiline("{-","-}");Until_newline"--"]endendmoduleElm=structmoduleInfo=structletname="Elm"letextensions=[".elm"]endmoduleSyntax=Haskell.SyntaxendmoduleZig=structmoduleInfo=structletname="Zig"letextensions=[".zig"]endmoduleSyntax=structincludeGeneric.Syntaxletcomments=[Until_newline"//"](* Multiline strings with \\ are awkward to support. Maybe later. *)letescapable_string_literals=ordinary_stringendend(** For testing *)moduleC_nested_comments=structmoduleInfo=structletname="C_with_nested_comments"letextensions=[]endmoduleSyntax=structincludeGeneric.Syntaxletcomments=[Nested_multiline("/*","*/")]endend