BT_POSTPROCESS(1) btparse BT_POSTPROCESS(1) (NAME) bt_postprocess - btparse (SYNOPSIS) void bt_postprocess_string (char * s, btshort options) char * bt_postprocess_value (AST * value, btshort options, boolean replace); char * bt_postprocess_field (AST * field, btshort options, boolean replace); void bt_postprocess_entry (AST * entry, btshort options); (DESCRIPTION) btparse BibTeX (AST) . : @Article{Jones:1997a, AuThOr = "Bob Jones" # and # "Jim Smith ", TITLE = "Feeding Habits of the Common Cockroach", JoUrNaL = j_ent, YEAR = 1997 } AST : (entry,"Article") (key,"Jones:1997a") (field,"AuThOr") (string,"Bob Jones") (macro,"and") (string,"Jim Smith ") (field,"TITLE") (string,"Feeding Habits of the Common Cockroach") (field,"JoUrNaL") (macro,"j_ent") (field,"YEAR") (number,"1997") bt_traversal . : . btparse . ( ). . BibTeX BibTeX . . . (FUNCTIONS) btparse . - - . (Post-processing entry points) AST . "(entry,"Article")" / . bt_parse_entry() bt_parse_entry_s() ( bt_input ) bt_next_entry() ( bt_parse_file() - bt_traversal ) . bt_postprocess_entry() . ( - ). "(field,"AuThOr")" "(string,"Bob Jones")" ( ). bt_next_field() bt_next_value() . bt_postprocess_field() bt_postprocess_value() . AST btparse . bt_postprocess_string() . (Post-processing options) "options" ( bt_set_stringopts() bt_input ). "options" (bitmap) (OR ) . "String processing option macros" btparse . bt_postprocess_string () void bt_postprocess_string (char * s, btshort options) "s" . BibTeX "options & BTO_COLLAPSE" (false) ( ). : ( ) ( btparse AST btparse . bt_postprocess_string() ). bt_postprocess_value () char * bt_postprocess_value (AST * value, btshort options, boolean replace); bt_next_value() . : ("BTO_CONVERT") ("BTO_EXPAND") ("BTO_COLLAPSE") ("BTO_PASTE"). (fatal error) . "replace" (true) "value" . ("options & BTO_PASTE" ) . . "replace" (false) . ( ). . ( ) . "author" . "and" " and " "value" AST . AST : (string,"Bob Jones") (macro,"and") (string,"Jim Smith ") (in-place) : bt_postprocess_value (value, BTO_FULL, TRUE); : (string,"Bob Jones and Jim Smith") "Bob Jones and Jim Smith" . "and" ( ). ( "BTO_FULL" : BTO_CONVERT | BTO_EXPAND | BTO_PASTE | BTO_COLLAPSE : "BTO_MACRO" "BTO_FULL" "BTO_COLLAPSE" "BTO_MINIMAL" ). ( : "BTAST_NUMBER" "BTAST_STRING" . ). : bt_postprocess_value (value, BTO_CONVERT|BTO_EXPAND|BTO_COLLAPSE,TRUE); : (string,"Bob Jones") (string,"and") (string,"Jim Smith") ( bt_postprocess_value() ). bt_postprocess_field () char * bt_postprocess_field (AST * field, btshort options, boolean replace); bt_postprocess_value() AST "" ( "(field,"AuThOr")" ) . ( ) . bt_postprocess_value() . bt_postprocess_entry () void bt_postprocess_entry (AST * entry, btshort options); . "entry" AST "" (regular) " " (macro definition) : "" . (comment) (preamble) . . ( ). (SEE ALSO) btparse, bt_input, bt_traversal (AUTHOR) Greg Ward btparse, version 0.91 2025-07-14 BT_POSTPROCESS(1)