#!/usr/bin/awk -f BEGIN { servicesFile = "../src/Span.h" charsFile = "../src/Characteristics.h" ws="[ \t,();]+" # regexp of separators ltws="^" ws "|" ws "$" # regexp of leading and training separators nServs=0 while(getline < servicesFile ){ gsub(ltws,"") # strip out leading or trailing separators n=split($0,x,ws) # split line by separators if(x[1]=="CREATE_SERV"){ currentService=x[2] services[nServs++]=currentService uuid[currentService]=x[3] nChars[currentService]=0 desc[currentService]="Placeholder for description of Service" } else if(x[1]=="REQ" || x[1]=="OPT"){ servChars[currentService,nChars[currentService]]=x[2] servReq[currentService,nChars[currentService]]=(x[1]=="REQ") nChars[currentService]++ } else if(x[1]=="CREATE_CHAR"){ char=x[3] default[char]=x[4] min[char]=x[5] max[char]=x[6] nVals[char]=n-6 # number of pre-defined constants for(i=0;i%s
\n",desc[s]) printf("\n") for(j=0;j") printf("",servReq[s,j]?"":"",char) printf("",uuid[char]) printf("",format[char]) printf("",perms[char]) if(format[char]!="string") printf("",min[char],max[char]) else printf("") printf("\n") } printf("
CharacteristicUUIDFormatPermsMinMaxConstants
%s%s%s%s%s%s%s--
    ") for(k=0;k%s (%d)",vals[char,k],k) printf("
>\n\n") } }