#!/usr/bin/env -S awk -f BEGIN {mode = "any"; lineno = 1;} {lineno++;} /@@/ {mode = "any"; $0 = ("#line " lineno);} /%%/ {mode = "vert";} /##/ {mode = "frag"; $0 = ("#line " lineno);} mode == "any" mode == "frag"