Source highlighter for programming or markup languages. Currently only few languages are supported, other languages may be added. The interface supports one language nested in another.
Types
TokenClass = enum gtEof, gtNone, gtWhitespace, gtDecNumber, gtBinNumber, gtHexNumber, gtOctNumber, gtFloatNumber, gtIdentifier, gtKeyword, gtStringLit, gtLongStringLit, gtCharLit, gtEscapeSequence, gtOperator, gtPunctuation, gtComment, gtLongComment, gtRegularExpression, gtTagStart, gtTagEnd, gtKey, gtValue, gtRawData, gtAssembler, gtPreprocessor, gtDirective, gtCommand, gtRule, gtHyperlink, gtLabel, gtReference, gtOther
- Source
GeneralTokenizer = object of RootObj kind*: TokenClass start*, length*: int buf: cstring pos: int state: TokenClass
- Source
SourceLanguage = enum langNone, langNim, langNimrod, langCpp, langCsharp, langC, langJava
- Source
Consts
sourceLanguageToStr: array[SourceLanguage, string] = ["none", "Nim", "Nimrod", "C++", "C#", "C", "Java"]
- Source
tokenClassToStr: array[TokenClass, string] = ["Eof", "None", "Whitespace", "DecNumber", "BinNumber", "HexNumber", "OctNumber", "FloatNumber", "Identifier", "Keyword", "StringLit", "LongStringLit", "CharLit", "EscapeSequence", "Operator", "Punctuation", "Comment", "LongComment", "RegularExpression", "TagStart", "TagEnd", "Key", "Value", "RawData", "Assembler", "Preprocessor", "Directive", "Command", "Rule", "Hyperlink", "Label", "Reference", "Other"]
- Source
Procs
proc getSourceLanguage(name: string): SourceLanguage {.raises: [], tags: [].}
- Source
proc initGeneralTokenizer(g: var GeneralTokenizer; buf: cstring) {.raises: [], tags: [].}
- Source
proc initGeneralTokenizer(g: var GeneralTokenizer; buf: string) {.raises: [], tags: [].}
- Source
proc deinitGeneralTokenizer(g: var GeneralTokenizer) {.raises: [], tags: [].}
- Source
proc getNextToken(g: var GeneralTokenizer; lang: SourceLanguage) {.raises: [], tags: [].}
- Source