nginx top-level property

Mode nginx
final

Implementation

final nginx = Mode(refs: {
  '~contains~2~contains~0~starts~contains~1~contains~1': Mode(className: "variable", variants: [Mode(begin: "\\\$\\d+"), Mode(begin: "\\\$\\{", end: "}"), Mode(begin: "[\\\$\\@][a-zA-Z_]\\w*")]),
}, aliases: [
  "nginxconf"
], contains: [
  hashCommentMode,
  Mode(begin: "[a-zA-Z_]\\w*\\s+{", returnBegin: true, end: "{", contains: [Mode(className: "section", begin: "[a-zA-Z_]\\w*")], relevance: 0),
  Mode(
      begin: "[a-zA-Z_]\\w*\\s",
      end: ";|{",
      returnBegin: true,
      contains: [
        Mode(
            className: "attribute",
            begin: "[a-zA-Z_]\\w*",
            starts: Mode(
                endsWithParent: true,
                lexemes: "[a-z/_]+",
                keywords: {"literal": "on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},
                relevance: 0,
                illegal: "=>",
                contains: [
                  hashCommentMode,
                  Mode(className: "string", contains: [backSlashEscape, Mode(ref: '~contains~2~contains~0~starts~contains~1~contains~1')], variants: [Mode(begin: "\"", end: "\""), Mode(begin: "'", end: "'")]),
                  Mode(begin: "([a-z]+):/", end: "\\s", endsWithParent: true, excludeEnd: true, contains: [Mode(ref: '~contains~2~contains~0~starts~contains~1~contains~1')]),
                  Mode(className: "regexp", contains: [backSlashEscape, Mode(ref: '~contains~2~contains~0~starts~contains~1~contains~1')], variants: [Mode(begin: "\\s\\^", end: "\\s|{|;", returnEnd: true), Mode(begin: "\\x7e\\*?\\s+", end: "\\s|{|;", returnEnd: true), Mode(begin: "\\*(\\.[a-z\\-]+)+"), Mode(begin: "([a-z\\-]+\\.)+\\*")]),
                  Mode(className: "number", begin: "\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"),
                  Mode(className: "number", begin: "\\b\\d+[kKmMgGdshdwy]*\\b", relevance: 0),
                  Mode(ref: '~contains~2~contains~0~starts~contains~1~contains~1')
                ]))
      ],
      relevance: 0)
], illegal: "[^\\s\\}]");