﻿TinySyntaxHighlighter.syntax_xml =
{
  states: [
    {
      name: "default", style: "default",
      transitions: [
        { expression: new RegExp("<!--"), state: "comment", style: "comment" },
        { expression: new RegExp("<!\\[CDATA\\["), state: "cdata", style: "cdata" },
        { expression: new RegExp("<%"), state: "code_block", style: "code_block" },
        { expression: new RegExp("<"), state: "elm_name", style: "brace" }
      ]
    },
    {
      name: "code_block", style: "default",
      transitions: [
        { expression: new RegExp("%>"), state: "default", style: "code_block" }
      ]
    },
    {
      name: "comment", style: "comment",
      transitions: [
        { expression: new RegExp("-->"), state: "default", style: "comment" }
      ]
    },
    {
      name: "cdata", style: "cdata",
      transitions: [
        { expression: new RegExp("\\]\\]>"), state: "default", style: "cdata" }
      ]
    },
    {
      name: "elm_name", style: "elm_name",
      transitions: [
        { expression: new RegExp("\\s*/"), state: "elm_name", style: "brace" },
        { expression: new RegExp("\\?"), state: "elm_name", style: "brace" },
        { expression: new RegExp(">"), state: "default", style: "brace" },
        { expression: new RegExp("\\s"), state: "attr_name", style: "elm_name" }
      ]
    },
    {
      name: "attr_name", style: "attr_name",
      transitions: [
        { expression: new RegExp(">"), state: "default", style: "brace" },
        { expression: new RegExp("=\\s*\""), state: "attr_value_q", style: "attr_quote" },
        { expression: new RegExp("=\\s*'"), state: "attr_value_a", style: "attr_quote" }
      ]
    },
    {
      name: "attr_value_q", style: "attr_value",
      transitions: [
        { expression: new RegExp("\""), state: "elm_name", style: "attr_quote" }
      ]
    },
    {
      name: "attr_value_a", style: "attr_value",
      transitions: [
        { expression: new RegExp("'"), state: "elm_name", style: "attr_quote" }
      ]
    }
  ],
  styles: [
    {
      name: "default",
      style: { color: "black" }
    },
    {
      name: "comment",
      style: { color: "green" }
    },
    {
      name: "cdata",
      style: { color: "gray" }
    },
    {
      name: "brace",
      style: { color: "blue" }
    },
    {
      name: "elm_name",
      style: { color: "maroon" }
    },
    {
      name: "attr_name",
      style: { color: "red" }
    },
    {
      name: "attr_value",
      style: { color: "blue" }
    },
    {
      name: "attr_quote",
      style: { color: "black" }
    },
    {
      name: "code_block",
      style: { color: "black", background_color: "yellow" }
    }
  ]
};
