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
TTokenClass = 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
TGeneralTokenizer = object of RootObj kind*: TTokenClass start*, length*: int buf: cstring pos: int state: TTokenClass
- Source
TSourceLanguage = enum langNone, langNim, langNimrod, langCpp, langCsharp, langC, langJava
- Source
Consts
sourceLanguageToStr: array[TSourceLanguage, string] = ["none", "Nim", "Nimrod", "C++", "C#", "C", "Java"]
- Source
tokenClassToStr: array[TTokenClass, 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): TSourceLanguage {.raises: [], tags: [].}
- Source
proc initGeneralTokenizer(g: var TGeneralTokenizer; buf: cstring) {.raises: [], tags: [].}
- Source
proc initGeneralTokenizer(g: var TGeneralTokenizer; buf: string) {.raises: [], tags: [].}
- Source
proc deinitGeneralTokenizer(g: var TGeneralTokenizer) {.raises: [], tags: [].}
- Source
proc getNextToken(g: var TGeneralTokenizer; lang: TSourceLanguage) {.raises: [], tags: [].}
- Source