Index: util/genref.sh =================================================================== --- util/genref.sh (revision 780) +++ util/genref.sh (revision 781) @@ -30,6 +30,7 @@ c99tree awk -I$root "$@" \ --gtx 'events=([] /+ d=[type == DECL]) && (d / i=[name ~ "GPMI_EVENT"]) && (i .+ [type == TYPE] . a=[type == ARGLIST] ) && (d : [loc_is_local == "1"])' \ --gtx 'funcs=([] /+ d=[type == DECL]) && (d / i=[!name ~ "GPMI_EVENT"]) && (i .+ [type == TYPE] . a=[type == ARGLIST] ) && (d : [loc_is_local == "1"])' \ + --gtx 'enums=([] /+ i=[type == ENUM]) && (i : [loc_is_local == "1"])' \ --paste "$prinit" $fn --awk-s ' function load(fn, s) @@ -75,11 +76,16 @@ return all } -function get_pre_comment(TREE, uid ,cmt_uid,cmt) +function get_any_comment(TREE, uid, bump_uid, dir ,cmt_uid,cmt) { cmt_uid = TREE[uid, C99F_TWIN_PARENT] + bump_uid = TREE[bump_uid, C99F_TWIN_PARENT] while(cmt_uid != "") { - cmt_uid = TREE[cmt_uid, C99F_PREV] + cmt_uid = TREE[cmt_uid, dir] + if (cmt_uid == bump_uid) { + cmt = cmt "<comment missing in the header>" + break + } if (TREE[cmt_uid, C99F_TYPE] == C99T_COMMENT) { cmt = TREE[cmt_uid, C99F_NAME] break @@ -90,6 +96,16 @@ return cmt } +function get_pre_comment(TREE, uid, bump_uid) +{ + return get_any_comment(TREE, uid, bump_uid, C99F_PREV) +} + +function get_post_comment(TREE, uid, bump_uid) +{ + return get_any_comment(TREE, uid, bump_uid, C99F_NEXT) +} + BEGIN { pkg="'$pkg'" c99tree_unknown(TREE) @@ -97,6 +113,35 @@ # source=load("'$fn'") + print "

Enums

" + print "
" + print "

Enum values should be passed on as strings." + enums = gtx_find_results(TREE, "enums") + for(r = 0; 1; r++) { + if (gtx_get_map(TREE, MAP, enums, r) == "") + break + id = TREE[MAP["i"], C99F_NAME] + + print "" + print "

" id "

" + print "
"
+		print get_pre_comment(TREE, MAP["i"])
+		print "
" + + print "" + print "
value meaning" + for(c = 0; c < TREE[MAP["i"], C99F_CHILDREN]; c++) { + uid = TREE[MAP["i"], C99F_CHILD, c] + nuid = TREE[MAP["i"], C99F_CHILD, c+1] + if (nuid == "") + nuid=TREE[TREE[MAP["i"], C99F_PARENT], C99F_NEXT] + print "
", TREE[uid, C99F_NAME], "", get_post_comment(TREE, uid, nuid) + } + print "
" + } + print "
" + + print "

Events

" print "
" print "

Events do not have return value. The first argument is always the even id"