
Description="Solidity"

Categories = {"source"}

Digits = [[ (?:0x|0X|0b)[0-9a-fA-F']+|\d*[\.]?\d+(?:[eE][\-\+]\d+)?[lLuU]* ]]

Keywords={
  { Id=1,
    List={
      "pragma", "solidity", "import", "from", "as", "anonymous", "assembly", "assert", "require", "revert", "break", "case",
      "constructor", "continue", "constant", "payable", "pure", "view", "contract", "interface", "library", "default", "delete",
      "do", "else", "emit", "enum", "event", "external", "internal", "private", "public", "for", "function", "new", "if", "is",
      "let", "mapping", "memory", "storage", "modifier", "return", "returns", "struct", "super", "switch", "this", "throw",
      "using", "var", "while", "abstract", "after", "catch", "final", "in", "inline", "match", "of", "relocatable", "static",
      "try", "type", "typeof",
      }
  },
  { Id=2,
    List= {
      "address", "bool", "string",
      "uint", "uint8", "uint16", "uint24", "uint32", "uint40", "uint48", "uint56", "uint64", "uint72", "uint80", "uint88",
      "uint96", "uint104", "uint112", "uint120", "uint128", "uint136", "uint144", "uint152", "uint160", "uint168", "uint176",
      "uint184", "uint192", "uint200", "uint208", "uint216", "uint224", "uint232", "uint240", "uint248", "uint256",
      "int", "int8", "int16", "int24", "int32", "int40", "int48", "int56", "int64", "int72", "int80", "int88", "int96",
      "int104", "int112", "int120", "int128", "int136", "int144", "int152", "int160", "int168", "int176", "int184", "int192",
      "int200", "int208", "int216", "int224", "int232", "int240", "int248", "int256",
      "bytes1", "bytes2", "bytes3", "bytes4", "bytes5", "bytes6", "bytes7", "bytes8", "bytes9", "bytes10", "bytes11", "bytes12",
      "bytes13", "bytes14", "bytes15", "bytes16", "bytes17", "bytes18", "bytes19", "bytes20", "bytes21", "bytes22", "bytes23",
      "bytes24", "bytes25", "bytes26", "bytes27", "bytes28", "bytes29", "bytes30", "bytes31", "bytes32"
    }
  },
  { Id=3,
    List= {
      "now", "length", "push", "pop", "balance", "call", "callcode", "delegatecall", "gas", "send", "transfer", "value",
      "coinbase", "difficulty", "gaslimit", "number", "timestamp", "data", "gas", "sender", "sig", "value"
    }
  },
  { Id=4,
    Regex=[[(\w+)\s*\(]]
  }
}

Strings = {
  Delimiter=[["|']]
}

Comments = {
  { Block=true,
    Nested=false,
    Delimiter = { [[\/\*]], [[\*\/]] }
  },
  {
    Block=false,
    Delimiter = { [[//]] }
  }
}

IgnoreCase=false

Operators=[[\(|\)|\[|\]|\{|\}|\,|\;|\.|\:|\&|<|>|\!|=|\/|\*|\%|\+|\-|\~|\||\^|\?]]

EnableIndentation=true
