BT_POST_PROCESSING(1) btparse BT_POST_PROCESSING(1) (NAME) bt_post_processing - BibTeX (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")" -AST "(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) . ( .) : space ( ) space space space . ( space btparse AST btparse space . bt_postprocess_string() space .) bt_postprocess_value () char * bt_postprocess_value (AST * value, btshort options, boolean replace); bt_next_value() . : ("BTO_CONVERT") ("BTO_EXPAND") ("BTO_COLLAPSE") ("BTO_PASTE"). . "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); ("BTO_FULL" : "BTO_CONVERT|BTO_EXPAND|BTO_PASTE|BTO_COLLAPSE".) : (string,"Bob Jones and Jim Smith") "Bob Jones and Jim Smith" . "and" . ( .) . ( : "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); (front-end) bt_postprocess_value() AST <> ( "(field,"AuThOr")" ) . ( ) . bt_postprocess_value() . bt_postprocess_entry () void bt_postprocess_entry (AST * entry, btshort options); . "entry" AST <<>> << >> : <<>> . comment preamble . (comment) . preamble . ( preamble .) btparse, version 0.91 2025-07-14 BT_POST_PROCESSING(1)