{"name":"Zeek","scopeName":"source.zeek","patterns":[{"name":"comment.line.zeek","begin":"(##!|##\u003c|##|#)","end":"$","beginCaptures":{"1":{"name":"punctuation.definition.comment.zeek"}}},{"name":"string.quoted.double.zeek","begin":"(\\\")","end":"(\\\")","patterns":[{"name":"constant.character.escape.zeek","match":"\\\\."},{"name":"constant.other.placeholder.zeek","match":"%-?[0-9]*(\\.[0-9]+)?[DTdxsefg]"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.zeek"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.zeek"}}},{"name":"string.regexp.zeek","begin":"(/)(?=.*/)","end":"(/)","patterns":[{"name":"constant.character.escape.zeek","match":"\\\\."}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.zeek"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.zeek"}}},{"name":"meta.preprocessor.zeek","match":"(@(load-plugin|load-sigs|load|unload)).*$","captures":{"1":{"name":"keyword.other.zeek"}}},{"name":"meta.preprocessor.zeek","match":"(@(DEBUG|DIR|FILENAME|deprecated|if|ifdef|ifndef|else|endif))","captures":{"1":{"name":"keyword.other.zeek"}}},{"name":"meta.preprocessor.zeek","match":"(@prefixes)\\s*(\\+?=).*$","captures":{"1":{"name":"keyword.other.zeek"},"2":{"name":"keyword.operator.zeek"}}},{"name":"storage.modifier.attribute.zeek","match":"\\\u0026\\b(redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|error_handler|type_column|deprecated|on_change|backend|broker_store|broker_allow_complex_type|is_assigned|is_used)\\b"},{"name":"constant.language.zeek","match":"\\b(T|F)\\b"},{"name":"constant.numeric.port.zeek","match":"\\b\\d{1,5}/(udp|tcp|icmp|unknown)\\b"},{"name":"constant.numeric.addr.zeek","match":"\\b(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\\b"},{"name":"constant.numeric.addr.zeek","match":"\\[([0-9a-fA-F]{0,4}:){2,7}([0-9a-fA-F]{0,4})?((25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2})\\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[0-9]{1,2}))?\\]"},{"name":"constant.numeric.float.decimal.interval.zeek","match":"(((?:(\\d*\\.\\d*)([eE][+-]?\\d+)?)|(?:(\\d*)([eE][+-]?\\d+))|(?:(\\d*\\.\\d*)))|\\d+)\\s*(day|hr|min|msec|usec|sec)s?"},{"name":"constant.numeric.float.decimal.zeek","match":"((?:(\\d*\\.\\d*)([eE][+-]?\\d+)?)|(?:(\\d*)([eE][+-]?\\d+))|(?:(\\d*\\.\\d*)))"},{"name":"constant.numeric.hostname.zeek","match":"\\b(([A-Za-z0-9][A-Za-z0-9\\-]*)(?:\\.([A-Za-z0-9][A-Za-z0-9\\-]*))+)\\b"},{"name":"constant.numeric.integer.hexadecimal.zeek","match":"\\b(0x[0-9a-fA-F]+)\\b"},{"name":"constant.numeric.integer.decimal.zeek","match":"\\b(\\d+)\\b"},{"name":"keyword.operator.zeek","match":"(==)|(!=)|(\u003c=)|(\u003c)|(\u003e=)|(\u003e)"},{"name":"keyword.operator.zeek","match":"(\u0026\u0026)|(||)|(!)"},{"name":"keyword.operator.zeek","match":"(=)|(\\+=)|(-=)"},{"name":"keyword.operator.zeek","match":"(\\+\\+)|(\\+)|(--)|(-)|(\\*)|(/)|(%)"},{"name":"keyword.operator.zeek","match":"(\u0026)|(\\|)|(\\^)|(~)"},{"name":"keyword.operator.zeek","match":"\\b(in|as|is)\\b"},{"name":"punctuation.terminator.zeek","match":";"},{"name":"punctuation.accessor.zeek","match":"\\??\\$"},{"name":"punctuation.accessor.zeek","match":"::"},{"name":"keyword.operator.zeek","match":"(\\?)"},{"name":"punctuation.separator.zeek","match":"(?\u003c=\\S)(:)"},{"name":"punctuation.separator.zeek","match":"(,)"},{"name":"keyword.operator.zeek","match":"(:)"},{"name":"meta.namespace.zeek","match":"(module)\\s+(([A-Za-z_][A-Za-z_0-9]*)(?:::([A-Za-z_][A-Za-z_0-9]*))*)","captures":{"1":{"name":"keyword.other.zeek"},"2":{"name":"entity.name.namespace.zeek"}}},{"name":"keyword.other.zeek","match":"\\b(export)\\b"},{"name":"keyword.control.conditional.zeek","match":"\\b(if|else)\\b"},{"name":"keyword.control.zeek","match":"\\b(for|while)\\b"},{"name":"keyword.control.zeek","match":"\\b(return|break|next|continue|fallthrough)\\b"},{"name":"keyword.control.zeek","match":"\\b(switch|default|case)\\b"},{"name":"keyword.other.zeek","match":"\\b(add|delete|copy)\\b"},{"name":"keyword.other.zeek","match":"\\b(print)\\b"},{"name":"keyword.control.zeek","match":"\\b(when|timeout|schedule)\\b"},{"name":"meta.struct.record.zeek","match":"\\b(type)\\s+((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)\\s*(:)\\s*\\b(record)\\b","captures":{"1":{"name":"keyword.other.zeek"},"2":{"name":"entity.name.struct.record.zeek"},"3":{"name":"punctuation.separator.zeek"},"4":{"name":"storage.type.struct.record.zeek keyword.declaration.struct.record.zeek"}}},{"name":"meta.enum.zeek","match":"\\b(type)\\s+((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)\\s*(:)\\s*\\b(enum)\\b","captures":{"1":{"name":"keyword.other.zeek"},"2":{"name":"entity.name.enum.zeek"},"3":{"name":"punctuation.separator.zeek"},"4":{"name":"storage.type.enum.zeek keyword.declaration.enum.zeek"}}},{"name":"meta.type.zeek","match":"\\b(type)\\s+((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)\\s*(:)","captures":{"1":{"name":"keyword.other.zeek"},"2":{"name":"entity.name.type.zeek"},"3":{"name":"punctuation.separator.zeek"}}},{"name":"meta.struct.record.zeek","match":"\\b(redef)\\s+(record)\\s+((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)\\b","captures":{"1":{"name":"keyword.other.zeek"},"2":{"name":"storage.type.struct.record.zeek keyword.declaration.struct.record.zeek"},"3":{"name":"entity.name.struct.record.zeek"}}},{"name":"meta.enum.zeek","match":"\\b(redef)\\s+(enum)\\s+((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)\\b","captures":{"1":{"name":"keyword.other.zeek"},"2":{"name":"storage.type.enum.zeek keyword.declaration.enum.zeek"},"3":{"name":"entity.name.enum.zeek"}}},{"match":"\\b(event)\\s+((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)(?=\\s*\\()","captures":{"1":{"name":"storage.type.zeek"},"2":{"name":"entity.name.function.event.zeek"}}},{"match":"\\b(hook)\\s+((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)(?=\\s*\\()","captures":{"1":{"name":"storage.type.zeek"},"2":{"name":"entity.name.function.hook.zeek"}}},{"match":"\\b(function)\\s+((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)(?=\\s*\\()","captures":{"1":{"name":"storage.type.zeek"},"2":{"name":"entity.name.function.zeek"}}},{"name":"keyword.other.zeek","match":"\\b(redef)\\b"},{"name":"storage.type.zeek","match":"\\b(any)\\b"},{"name":"storage.type.zeek","match":"\\b(enum|record|set|table|vector)\\b"},{"match":"\\b(opaque)\\s+(of)\\s+((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)\\b","captures":{"1":{"name":"storage.type.zeek"},"2":{"name":"keyword.operator.zeek"},"3":{"name":"storage.type.zeek"}}},{"name":"keyword.operator.zeek","match":"\\b(of)\\b"},{"name":"storage.type.zeek","match":"\\b(addr|bool|count|double|file|int|interval|pattern|port|string|subnet|time)\\b"},{"name":"storage.type.zeek","match":"\\b(function|hook|event)\\b"},{"name":"storage.modifier.zeek","match":"\\b(global|local|const|option)\\b"},{"name":"entity.name.function.call.zeek","match":"\\b((?:[A-Za-z_][A-Za-z_0-9]*)(?:::(?:[A-Za-z_][A-Za-z_0-9]*))*)(?=\\s*\\()"},{"name":"punctuation.section.block.begin.zeek","match":"\\{"},{"name":"punctuation.section.block.end.zeek","match":"\\}"},{"name":"punctuation.section.brackets.begin.zeek","match":"\\["},{"name":"punctuation.section.brackets.end.zeek","match":"\\]"},{"name":"punctuation.section.parens.begin.zeek","match":"\\("},{"name":"punctuation.section.parens.end.zeek","match":"\\)"}]}