Zig's standard std.http.Server has no routing DSL. Applications usually
branch on request.head.target and request.head.method after
receiveHead(), then call request.respond(...) or a handler function.
Constants
HEAD_TARGET_RE = /\.head\.target/
IF_RE = /(?:^|[^A-Za-z0-9_])if\s*\(/
METHOD_EQUALS_RE = /([A-Za-z_]\w*(?:\s*\.\s*[A-Za-z_]\w*)*)\s*==\s*\.([A-Za-z_]\w*)/
METHOD_REVERSED_RE = /\.([A-Za-z_]\w*)\s*==\s*([A-Za-z_]\w*(?:\s*\.\s*[A-Za-z_]\w*)*)/
PATH_EQL_RE = /std\s*\.\s*mem\s*\.\s*eql\s*\(\s*u8\s*,\s*"((?:[^"\\]|\\.)*)"\s*,\s*([A-Za-z_]\w*(?:\s*\.\s*[A-Za-z_]\w*)*)\s*\)/
PATH_EQUALS_RE = /"((?:[^"\\]|\\.)*)"\s*==\s*([A-Za-z_]\w*(?:\s*\.\s*[A-Za-z_]\w*)*)/
RECEIVE_HEAD_RE = /\.receiveHead\(/
RESPOND_RE = /\.respond\(/
STD_HTTP_SERVER_RE = /std\.http\.Server/
Whole-file detection gate, evaluated once per .zig file. String#matches?
(PCRE2 JIT) is faster than the naive String#includes? char scan, and
STD_IMPORT_RE folds the two-way OR into a single scan. Each matcher is
equivalent to the literal substring test it replaces.
STD_IMPORT_RE =
Regex.union("@import(\"std\")", "std.http")
SWITCH_PRONG_RE = /\.([A-Za-z_]\w*)\s*=>\s*\{/
SWITCH_RE = /switch\s*\(\s*([A-Za-z_]\w*(?:\s*\.\s*[A-Za-z_]\w*)*)\s*\)\s*\{/
TARGET_ASSIGN_RE = /(?:const|var)\s+([A-Za-z_]\w*)\s*(?::\s*[^=;]+)?=\s*([A-Za-z_]\w*(?:\s*\.\s*[A-Za-z_]\w*)*)\s*;/
TARGET_EQL_RE = /std\s*\.\s*mem\s*\.\s*eql\s*\(\s*u8\s*,\s*([A-Za-z_]\w*(?:\s*\.\s*[A-Za-z_]\w*)*)\s*,\s*"((?:[^"\\]|\\.)*)"\s*\)/
TARGET_EQUALS_RE = /([A-Za-z_]\w*(?:\s*\.\s*[A-Za-z_]\w*)*)\s*==\s*"((?:[^"\\]|\\.)*)"/
TARGET_PRONG_RE = /"((?:[^"\\]|\\.)*)"\s*=>/
Instance methods
tech
Instance-side view of the same declaration. The per-file rescues live on
this base class, which has no way to name the analyzer that is running
inside them, so a skipped file could not be attributed to a tech.
Deriving it from analyzer_for keeps the name written exactly once.
Source