79 lines
1.5 KiB
Awk
Executable File
79 lines
1.5 KiB
Awk
Executable File
#!/usr/bin/awk -f
|
|
|
|
BEGIN {
|
|
|
|
servicesFile = "../src/Span.h"
|
|
charsFile = "../src/Characteristics.h"
|
|
|
|
nServs=0
|
|
|
|
while(getline < servicesFile ){
|
|
|
|
gsub("^[ ]+","") # strip out any leading spaces
|
|
n=split($0,x,"[,(); ]+") # split line into separate words
|
|
|
|
if(x[1]=="CREATE_SERV"){
|
|
currentService=x[2]
|
|
services[nServs++]=currentService
|
|
uuid[currentService]=x[3]
|
|
nReqs[currentService]=0
|
|
nOpts[currentService]=0
|
|
}
|
|
|
|
else if(x[1]=="REQ")
|
|
reqs[currentService,nReqs[currentService]++]=x[2]
|
|
|
|
else if(x[1]=="OPT")
|
|
opts[currentService,nOpts[currentService]++]=x[2]
|
|
|
|
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<nVals[char];i++)
|
|
vals[char,i]=x[i+7]
|
|
}
|
|
|
|
}
|
|
|
|
close(servicesFile)
|
|
|
|
while(getline < charsFile){
|
|
|
|
gsub("^[ ]+","") # strip out any leading spaces
|
|
n=split($0,x,"[,(); ]+") # split line into separate words
|
|
|
|
if(x[1]=="HAPCHAR"){
|
|
char=x[2]
|
|
uuid[char]=x[3]
|
|
perms[char]=x[4]
|
|
format[char]=x[5]
|
|
static[char]=x[6]
|
|
}
|
|
|
|
}
|
|
|
|
close(charsFile)
|
|
|
|
|
|
for(i=0;i<nServs;i++){
|
|
s=services[i]
|
|
printf("<detail><summary>%s (%s)</summary>\n",s,uuid[s])
|
|
for(j=0;j<nReqs[s];j++){
|
|
print " REQ:" reqs[s,j]
|
|
print default[reqs[s,j]], min[reqs[s,j]], max[reqs[s,j]]
|
|
for(k=0;k<nVals[reqs[s,j]];k++)
|
|
print vals[reqs[s,j],k]
|
|
}
|
|
for(j=0;j<nOpts[s];j++){
|
|
print " OPT:" opts[s,j]
|
|
}
|
|
print "</detail>"
|
|
}
|
|
|
|
}
|
|
|
|
|