Google

PLT MzLib: Libraries Manual


awk.ss: Awk-like Syntax

This library defines the awk macro from Scsh:

(awk next-record-expr 
     (record field-variable ···counter-variable/optional 
     ((state-variable init-expr) ···continue-variable/optional 
  clause ···) 
 
counter-variable/optional is either empty or 
  variable 
 
continue-variable/optional is either empty or 
  variable 
 
clause is one of 
  (test body-expr ···1) 
  (test => procedure-expr) 
  (/ regexp-str / (variable-or-false ···1) body-expr ···1) 
  (range exclusive-start-test exclusive-stop-test body-expr ···1) 
  (:range inclusive-start-test exclusive-stop-test body-expr ···1) 
  (range: exclusive-start-test inclusive-stop-test body-expr ···1) 
  (:range: inclusive-start-test inclusive-inclusive-stop-test body-expr ···1) 
  (else body-expr ···1) 
  (after body-expr ···1) 
 
test is one of 
  integer 
  regexp-str  
  expr 
 
variable-or-false is one of 
  variable 
  #f 

For detailed information about awk, see Olin Shivers's Scsh Reference Manual. In addition to awk, the Scsh-compatible procedures match:start, match:end, match:substring, and regexp-exec are defined. These match: procedures must be used to extract match information in a regular expression clause when using the => form.