AST(3)

πŸ“¦
version 16.1.0 Β· 2 versions
  • 16.1.0 Β· alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, centos-stream 10, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu resolute, ubuntu stonking (latest)
  • 2.44.0 Β· centos-stream 9
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, centos-stream 10, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu resolute, ubuntu stonking

✨ AST(3) ✨

okay bestie, welcome to the c-like expression library β€” it's giving expr, it's giving Library Functions Manual, and it is lowkey iconic. sit down, grab a strawberry πŸ“, and let's get into it.


πŸ’– NAME πŸ’–

expr β€” the c-like expression library. that's it, that's the whole name. short, sweet, slays. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

first things first, you gotta let it in:

#include <graphviz/expr.h>

then here's the whole squad of functions, fr fr:

Expr_t*          exopen(Exdisc_t*);
Excc_t*          exccopen(Expr_t*, Exccdisc_t*);
int              exccclose(Excc_t*);
void             exclose(Expr_t*, int);
char*            excontext(Expr_t*, char*, int);
void             exerror(const char*, ...);
Extype_t         exeval(Expr_t*, Exnode_t*, void*);
Exnode_t*        exexpr(Expr_t*, const char*, Exid_t*, int);

and the second half of the girlies, the node/token/compile crew:

Exnode_t*        excast(Expr_t*, Exnode_t*, int, Exnode_t*, int);
Exnode_t*        exnewnode(Expr_t*, int, int, int, Exnode_t*, Exnode_t*);
void             exfreenode(Expr_t*, Exnode_t*);
int              expush(Expr_t*, const char*, int, const char*, FILE*);
int              expop(Expr_t*);
int              excomp(Expr_t*, const char*, int, const char*, FILE*);
int              extoken(Expr_t*);
char*            extype(long int);
Extype_t         exzero(long int);

no cap, that's all of them, copy them exactly bestie, character for character, we do not freestyle signatures in this house. πŸ™ˆ


🌸 DESCRIPTION 🌸

okay so here's the tea, and it's actually a short one so pay attention:

  • exopen() β€” this is the first function called. the opening act. the main character entrance. nothing happens before her. πŸ‘‘
  • exclose() β€” and this is the last function called. the closing credits. she locks up when everyone's done. πŸŽ€
  • exccopen() β€” she's the one you call if code generation will be used. conditional queen. only shows up when the codegen vibe check is passed. ✨
  • exccclose() β€” she releases the state information allocated in exccopen(). so like, whatever exccopen() set up, exccclose() takes it back down. they're a matched set, don't separate them. 🫢
that's literally the whole description section, bestie. the manpage said what it said and we're not adding a single technical claim that isn't there. periodt. πŸ’€

🌈 SEE ALSO 🌈

literally just itself. the self-referential icon behaviour. AST(3), no notes. πŸͺž


and that's a wrap on the AST(3) manual page, from the Library Functions Manual β€” written up all cute for you with zero details left behind, every flag, signature, and function accounted for. mwah. πŸ’‹βœ¨

πŸ“¦ where this page comes from