home: hub: hare-pthread

ref: fadbab49dc34508f835d31aaaa86135e51b3154e
dir: /filter.awk/

View raw version
#!/home/grobe0ba/opt/x86_64/bin/awk -f

BEGIN { print "use rt;" }

/^$/ { print; next }

{
    rettype=""
    fn=""
    start=3
    noret=0
    nullable=0
    if($1 != "noret"){
        rettype=$1
        fn=$2
    }
    if($1 == "noret"){
        start=4
        rettype=$2
        fn=$3
        noret=1
    }
    if($1 == "nullable"){
        start=4
        rettype=$2
        fn=$3
        nullable=1
    }
    printf "export @symbol(\"pthread_%s\") ", fn
    if(noret == 1){
        printf "@noreturn "
    }
    printf "fn %s(", fn
    for(i = start; i <= NF; i++){
        printf "_: "
        if($i == "const"){
            i++
            printf "const "
        }

        if($i == "nullable"){
            i++
            printf "nullable "
        }

        printf "%s", $i
        if(i < NF){
            printf ", "
        }
    }
    printf ") "
    if(nullable == 1){
        printf "nullable "
    }
    printf "%s;\n", rettype
}