﻿TinySyntaxHighlighter.syntax_sql =
{
  states: [
    {
      name: "default", style: "default",
      transitions: [
        { expression: new RegExp("'"), state: "string_ml", style: "string" },
        { expression: new RegExp("--"), state: "comment", style: "comment" },
        { expression: new RegExp("/\\*"), state: "comment_ml", style: "comment" },
        { expression: new RegExp("\\["), state: "identifier", style: "default" },
        { expression: new RegExp("\\b(ADD|EXCEPT|PERCENT|ALL|EXEC|PLAN|ALTER|EXECUTE|PRECISION|AND|EXISTS|PRIMARY|ANY|EXIT|PRINT|AS|FETCH|PROC|ASC|FILE|PROCEDURE|AUTHORIZATION|FILLFACTOR|PUBLIC|BACKUP|FOR|RAISERROR|BEGIN|FOREIGN|READ|BETWEEN|FREETEXT|READTEXT|BREAK|FREETEXTTABLE|RECONFIGURE|BROWSE|FROM|REFERENCES|BULK|FULL|REPLICATION|BY|FUNCTION|RESTORE|CASCADE|GOTO|RESTRICT|CASE|GRANT|RETURN|CHECK|GROUP|REVOKE|CHECKPOINT|HAVING|RIGHT|CLOSE|HOLDLOCK|ROLLBACK|CLUSTERED|IDENTITY|ROWCOUNT|COALESCE|IDENTITY_INSERT|ROWGUIDCOL|COLLATE|IDENTITYCOL|RULE|COLUMN|IF|SAVE|COMMIT|IN|SCHEMA|COMPUTE|INDEX|SELECT|CONSTRAINT|INNER|SESSION_USER|CONTAINS|INSERT|SET|CONTAINSTABLE|INTERSECT|SETUSER|CONTINUE|INTO|SHUTDOWN|CONVERT|IS|SOME|CREATE|JOIN|STATISTICS|CROSS|KEY|SYSTEM_USER|CURRENT|KILL|TABLE|CURRENT_DATE|LEFT|TEXTSIZE|CURRENT_TIME|LIKE|THEN|CURRENT_TIMESTAMP|LINENO|TO|CURRENT_USER|LOAD|TOP|CURSOR|NATIONAL|TRAN|DATABASE|NOCHECK|TRANSACTION|DBCC|NONCLUSTERED|TRIGGER|DEALLOCATE|NOT|TRUNCATE|DECLARE|NULL|TSEQUAL|DEFAULT|NULLIF|UNION|DELETE|OF|UNIQUE|DENY|OFF|UPDATE|DESC|OFFSETS|UPDATETEXT|DISK|ON|USE|DISTINCT|OPEN|USER|DISTRIBUTED|OPENDATASOURCE|VALUES|DOUBLE|OPENQUERY|VARYING|DROP|OPENROWSET|VIEW|DUMMY|OPENXML|WAITFOR|DUMP|OPTION|WHEN|ELSE|OR|WHERE|END|ORDER|WHILE|ERRLVL|OUTER|WITH|ESCAPE|OVER|WRITETEXT)\\b", "i"), state: "default", style: "keyword" }
      ]
    },
    {
      name: "identifier", style: "default",
      transitions: [
        { expression: new RegExp("\\]"), state: "default", style: "default" }
      ]
    },
    {
      name: "comment", style: "comment",
      transitions: [
        { expression: new RegExp("\\n"), state: "default", style: "comment" }
      ]
    },
    {
      name: "comment_ml", style: "comment",
      transitions: [
        { expression: new RegExp("\\*/"), state: "default", style: "comment" }
      ]
    },
    {
      name: "string_ml", style: "string",
      transitions: [
        { expression: new RegExp("''"), state: "string_ml", style: "string" },
        { expression: new RegExp("'"), state: "default", style: "string" }
      ]
    }
  ],
  styles: [
    {
      name: "default",
      style: { color: "black" }
    },
    {
      name: "comment",
      style: { color: "green" }
    },
    {
      name: "string",
      style: { color: "red" }
    },
    {
      name: "keyword",
      style: { color: "blue" }
    }
  ]
};
