module Skylighting.Syntax.Tcl (syntax) where
import Skylighting.Types
import Data.Map
import Skylighting.Regex
import qualified Data.Set
syntax :: Syntax
syntax = Syntax
{ sName = "Tcl/Tk"
, sFilename = "tcl.xml"
, sShortname = "Tcl"
, sContexts =
fromList
[ ( "Base"
, Context
{ cName = "Base"
, cSyntax = "Tcl/Tk"
, cRules =
[ Rule
{ rMatcher =
RegExpr
RE
{ reString = "#\\s*BEGIN.*$"
, reCompiled = Just (compileRegex True "#\\s*BEGIN.*$")
, reCaseSensitive = True
}
, rAttribute = RegionMarkerTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = True
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
RegExpr
RE
{ reString = "#\\s*END.*$"
, reCompiled = Just (compileRegex True "#\\s*END.*$")
, reCaseSensitive = True
}
, rAttribute = RegionMarkerTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = True
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
Keyword
KeywordAttr
{ keywordCaseSensitive = True
, keywordDelims =
Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
}
(makeWordSet
True
[ "AppleScript"
, "OptProc"
, "after"
, "append"
, "argc"
, "argv"
, "array"
, "auto_execk"
, "auto_execok"
, "auto_import"
, "auto_load"
, "auto_mkindex"
, "auto_mkindex_old"
, "auto_path"
, "auto_qualify"
, "auto_reset"
, "beep"
, "bell"
, "bgerror"
, "binary"
, "bind"
, "bindtags"
, "break"
, "button"
, "canvas"
, "case"
, "catch"
, "cd"
, "chan"
, "checkbutton"
, "clipboard"
, "clock"
, "close"
, "combobox"
, "concat"
, "console"
, "continue"
, "dde"
, "destroy"
, "dict"
, "else"
, "elseif"
, "encoding"
, "entry"
, "env"
, "eof"
, "error"
, "errorCode"
, "errorInfo"
, "eval"
, "event"
, "exec"
, "exit"
, "expr"
, "fblocked"
, "fconfigure"
, "fcopy"
, "file"
, "fileevent"
, "flush"
, "focus"
, "font"
, "for"
, "foreach"
, "format"
, "frame"
, "gets"
, "glob"
, "global"
, "grab"
, "grid"
, "history"
, "if"
, "image"
, "incr"
, "info"
, "interp"
, "join"
, "label"
, "labelframe"
, "lappend"
, "lassign"
, "lindex"
, "linsert"
, "list"
, "listbox"
, "llength"
, "load"
, "lower"
, "lrange"
, "lremove"
, "lrepeat"
, "lreplace"
, "lreverse"
, "lsearch"
, "lset"
, "lsort"
, "menu"
, "menubutton"
, "message"
, "namespace"
, "notebook"
, "open"
, "option"
, "pack"
, "package"
, "panedwindow"
, "parray"
, "pid"
, "pkg_mkIndex"
, "place"
, "proc"
, "progressbar"
, "puts"
, "pwd"
, "radiobutton"
, "raise"
, "read"
, "regexp"
, "registry"
, "regsub"
, "rename"
, "resource"
, "return"
, "scale"
, "scan"
, "scrollbar"
, "seek"
, "selection"
, "send"
, "separator"
, "set"
, "sizegrip"
, "socket"
, "source"
, "spinbox"
, "split"
, "string"
, "style"
, "subst"
, "switch"
, "tclLog"
, "tcl_endOfWord"
, "tcl_findLibrary"
, "tcl_library"
, "tcl_patchLevel"
, "tcl_platform"
, "tcl_precision"
, "tcl_rcFileName"
, "tcl_rcRsrcName"
, "tcl_startOfNextWord"
, "tcl_startOfPreviousWord"
, "tcl_traceCompile"
, "tcl_traceExec"
, "tcl_version"
, "tcl_wordBreakAfter"
, "tcl_wordBreakBefore"
, "tell"
, "text"
, "time"
, "tk"
, "tkTabToWindow"
, "tk_chooseColor"
, "tk_chooseDirectory"
, "tk_focusFollowMouse"
, "tk_focusNext"
, "tk_focusPrev"
, "tk_getOpenFile"
, "tk_getSaveFile"
, "tk_library"
, "tk_menuSetFocus"
, "tk_messageBox"
, "tk_optionMenu"
, "tk_patchLevel"
, "tk_popup"
, "tk_strictMotif"
, "tk_textCopy"
, "tk_textCut"
, "tk_textPaste"
, "tk_version"
, "tkwait"
, "toplevel"
, "trace"
, "traverseTo"
, "treeview"
, "unknown"
, "unload"
, "unset"
, "update"
, "uplevel"
, "upvar"
, "variable"
, "vwait"
, "while"
, "winfo"
, "wm"
])
, rAttribute = KeywordTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
Keyword
KeywordAttr
{ keywordCaseSensitive = True
, keywordDelims =
Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
}
(makeWordSet
True
[ "activate"
, "actual"
, "add"
, "addtag"
, "append"
, "appname"
, "args"
, "aspect"
, "atime"
, "atom"
, "atomname"
, "attributes"
, "bbox"
, "bind"
, "body"
, "broadcast"
, "bytelength"
, "cancel"
, "canvasx"
, "canvasy"
, "caret"
, "cells"
, "cget"
, "channels"
, "children"
, "class"
, "clear"
, "clicks"
, "client"
, "clone"
, "cmdcount"
, "colormapfull"
, "colormapwindows"
, "command"
, "commands"
, "compare"
, "complete"
, "configure"
, "containing"
, "convertfrom"
, "convertto"
, "coords"
, "copy"
, "create"
, "current"
, "curselection"
, "dchars"
, "debug"
, "default"
, "deiconify"
, "delete"
, "delta"
, "depth"
, "deselect"
, "dirname"
, "dlineinfo"
, "dtag"
, "dump"
, "edit"
, "entrycget"
, "entryconfigure"
, "equal"
, "executable"
, "exists"
, "extension"
, "families"
, "find"
, "first"
, "flash"
, "focus"
, "focusmodel"
, "forget"
, "format"
, "fpixels"
, "fraction"
, "frame"
, "functions"
, "generate"
, "geometry"
, "get"
, "gettags"
, "globals"
, "grid"
, "group"
, "handle"
, "height"
, "hide"
, "hostname"
, "iconbitmap"
, "iconify"
, "iconmask"
, "iconname"
, "iconposition"
, "iconwindow"
, "icursor"
, "id"
, "identify"
, "idle"
, "ifneeded"
, "image"
, "index"
, "info"
, "insert"
, "interps"
, "inuse"
, "invoke"
, "is"
, "isdirectory"
, "isfile"
, "ismapped"
, "itemcget"
, "itemconfigure"
, "join"
, "keys"
, "last"
, "length"
, "level"
, "library"
, "link"
, "loaded"
, "locals"
, "lower"
, "lstat"
, "manager"
, "map"
, "mark"
, "match"
, "maxsize"
, "measure"
, "metrics"
, "minsize"
, "mkdir"
, "move"
, "mtime"
, "name"
, "nameofexecutable"
, "names"
, "nativename"
, "nearest"
, "normalize"
, "number"
, "overrideredirect"
, "own"
, "owned"
, "panecget"
, "paneconfigure"
, "panes"
, "parent"
, "patchlevel"
, "pathname"
, "pathtype"
, "pixels"
, "pointerx"
, "pointerxy"
, "pointery"
, "positionfrom"
, "post"
, "postcascade"
, "postscript"
, "present"
, "procs"
, "protocol"
, "provide"
, "proxy"
, "raise"
, "range"
, "readable"
, "readlink"
, "release"
, "remove"
, "rename"
, "repeat"
, "replace"
, "reqheight"
, "require"
, "reqwidth"
, "resizable"
, "rgb"
, "rootname"
, "rootx"
, "rooty"
, "scale"
, "scaling"
, "scan"
, "screen"
, "screencells"
, "screendepth"
, "screenheight"
, "screenmmheight"
, "screenmmwidth"
, "screenvisual"
, "screenwidth"
, "script"
, "search"
, "seconds"
, "see"
, "select"
, "selection"
, "separator"
, "server"
, "set"
, "sharedlibextension"
, "show"
, "size"
, "sizefrom"
, "split"
, "stackorder"
, "stat"
, "state"
, "status"
, "system"
, "tag"
, "tail"
, "tclversion"
, "title"
, "tolower"
, "toplevel"
, "totitle"
, "toupper"
, "transient"
, "trim"
, "trimleft"
, "trimright"
, "type"
, "types"
, "unknown"
, "unpost"
, "useinputmethods"
, "validate"
, "values"
, "variable"
, "vars"
, "vcompare"
, "vdelete"
, "versions"
, "viewable"
, "vinfo"
, "visual"
, "visualid"
, "visualsavailable"
, "volumes"
, "vrootheight"
, "vrootwidth"
, "vrootx"
, "vrooty"
, "vsatisfies"
, "width"
, "window"
, "windowingsystem"
, "withdraw"
, "wordend"
, "wordstart"
, "writable"
, "x"
, "xview"
, "y"
])
, rAttribute = OtherTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = Float
, rAttribute = FloatTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = Int
, rAttribute = DecValTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
RegExpr
RE
{ reString = "\\\\."
, reCompiled = Just (compileRegex True "\\\\.")
, reCaseSensitive = True
}
, rAttribute = CharTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
RegExpr
RE
{ reString = "\\s-\\w+"
, reCompiled = Just (compileRegex True "\\s-\\w+")
, reCaseSensitive = True
}
, rAttribute = OtherTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
RegExpr
RE
{ reString = "\\$\\{([^\\}]|\\\\\\})+\\}"
, reCompiled =
Just (compileRegex True "\\$\\{([^\\}]|\\\\\\})+\\}")
, reCaseSensitive = True
}
, rAttribute = DataTypeTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
RegExpr
RE
{ reString = "\\$(::|\\w)+"
, reCompiled = Just (compileRegex True "\\$(::|\\w)+")
, reCaseSensitive = True
}
, rAttribute = DataTypeTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
RegExpr
RE
{ reString = "\"{2}"
, reCompiled = Just (compileRegex True "\"{2}")
, reCaseSensitive = True
}
, rAttribute = StringTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher =
RegExpr
RE
{ reString = "\""
, reCompiled = Just (compileRegex True "\"")
, reCaseSensitive = True
}
, rAttribute = StringTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = [ Push ( "Tcl/Tk" , "String" ) ]
}
, Rule
{ rMatcher = DetectChar ';'
, rAttribute = NormalTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = [ Push ( "Tcl/Tk" , "New command line" ) ]
}
, Rule
{ rMatcher = DetectChar '#'
, rAttribute = CommentTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = True
, rColumn = Nothing
, rContextSwitch = [ Push ( "Tcl/Tk" , "Comment" ) ]
}
, Rule
{ rMatcher = DetectChar '{'
, rAttribute = KeywordTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = DetectChar '}'
, rAttribute = KeywordTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = DetectChar '['
, rAttribute = KeywordTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = DetectChar ']'
, rAttribute = KeywordTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
]
, cAttribute = NormalTok
, cLineEmptyContext = []
, cLineEndContext = []
, cLineBeginContext = []
, cFallthrough = False
, cFallthroughContext = []
, cDynamic = False
}
)
, ( "Comment"
, Context
{ cName = "Comment"
, cSyntax = "Tcl/Tk"
, cRules = []
, cAttribute = CommentTok
, cLineEmptyContext = []
, cLineEndContext = [ Pop ]
, cLineBeginContext = []
, cFallthrough = False
, cFallthroughContext = []
, cDynamic = False
}
)
, ( "New command line"
, Context
{ cName = "New command line"
, cSyntax = "Tcl/Tk"
, cRules =
[ Rule
{ rMatcher =
RegExpr
RE
{ reString = "\\s*#"
, reCompiled = Just (compileRegex True "\\s*#")
, reCaseSensitive = True
}
, rAttribute = CommentTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = [ Push ( "Tcl/Tk" , "Comment" ) ]
}
, Rule
{ rMatcher =
RegExpr
RE
{ reString = "."
, reCompiled = Just (compileRegex True ".")
, reCaseSensitive = True
}
, rAttribute = NormalTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = True
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = [ Pop ]
}
]
, cAttribute = NormalTok
, cLineEmptyContext = []
, cLineEndContext = []
, cLineBeginContext = []
, cFallthrough = False
, cFallthroughContext = []
, cDynamic = False
}
)
, ( "String"
, Context
{ cName = "String"
, cSyntax = "Tcl/Tk"
, cRules =
[ Rule
{ rMatcher =
RegExpr
RE
{ reString = "\\\\."
, reCompiled = Just (compileRegex True "\\\\.")
, reCaseSensitive = True
}
, rAttribute = CharTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
, Rule
{ rMatcher = DetectChar '"'
, rAttribute = StringTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = [ Pop ]
}
, Rule
{ rMatcher = DetectChar '$'
, rAttribute = DataTypeTok
, rIncludeAttribute = False
, rDynamic = False
, rCaseSensitive = True
, rChildren = []
, rLookahead = False
, rFirstNonspace = False
, rColumn = Nothing
, rContextSwitch = []
}
]
, cAttribute = StringTok
, cLineEmptyContext = []
, cLineEndContext = []
, cLineBeginContext = []
, cFallthrough = False
, cFallthroughContext = []
, cDynamic = False
}
)
]
, sAuthor = ""
, sVersion = "3"
, sLicense = "BSD"
, sExtensions = [ "*.tcl" , "*.tk" ]
, sStartingContext = "Base"
}