UNFLATABLEXPR(3)

πŸ“¦ version 5.1.1-unstable-2025-02, in nixos 26.05, nixpkgs unstable

πŸ’… UNFLATABLEXPR(3) β€” like, the ABL FUNCTIONS girlies

okay so bestie, welcome to UNFLATABLEXPR(3) from the ABL FUNCTIONS manual section β€” yes the whole manual is literally called that, and yes we're gonna get through this together 🫢


✨ NAME ✨

unflatablexpr β€” unflats the operators of an expression πŸ’«

(that's it. that's the whole name section. iconic, honestly.)


🌸 ORIGIN 🌸

for the lore girlies: this software belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team at LIP6 laboratory of UniversitοΏ½ Pierre et Marie CURIE, in Paris, France πŸ₯–βœ¨

no cap, that's the whole origin story. write it down πŸ“


πŸŽ€ SYNOPSIS πŸŽ€

#include "abl101.h"
void unflatablexpr( Expr )
  chain_list βˆ—Expr;

like, that's the whole vibe check right there πŸ”₯


πŸ¦‹ PARAMETERS πŸ¦‹

  • Expr β€” the expression you want to unflat, bestie. that's the one. that's the assignment πŸ’…

πŸ’œ DESCRIPTION πŸ’œ

so here's the tea, and it's actually good tea β˜•:

unflatablexpr modifies all the operators in Expr so that you end up with exclusively binary or unary operators ✨ like, every single one. no n-ary stragglers left behind. periodt.


⭐ RETURN VALUE ⭐

unflatablexpr returns the modified expression πŸ’– (yes, it returns it! it also modifies it! both things! we love a multitasker 😭)


🌈 EXAMPLE 🌈

okay this is the part where it all clicks, watch:

#include "abl101.h"
  chain_list βˆ—Expr1;
  chain_list βˆ—Expr2;
  Expr1 = createbinexpr( ABL_OR,
                         createablatom( "a" ),
                         createablatom( "b" ) );
  addablqexpr( Expr1, createablatom( "c" ) );
  Expr2 = unflatablexpr( dupablexpr( Expr1 ) );
  /* displays ((a or b) or c) (a or b or c) */
  viewablexpr( Expr2, ABL_VIEW_VHDL );
  viewablexpr( Expr1, ABL_VIEW_VHDL );

see how Expr1 is all flat and n-ary and messy, and Expr2 β€” the unflattened duplicate β€” comes out all ((a or b) or c)? that's the whole point babes πŸ’€βœ¨ the comment in there literally tells you what gets displayed, so don't @ me.


πŸ” SEE ALSO πŸ”

(yes, ununflatablexpr is a real thing. I said what I said. iykyk πŸ‘‘)


πŸ™ˆ BUG REPORT πŸ™ˆ

real talk for a sec: this tool is under development at the ASIM department of the LIP6 laboratory πŸ› οΈ

they need your feedback to improve documentation and tools β€” so like, if something's weird, tell them! it's giving community 🫢


⚠️ friendly reminder: this page is documentation from October 1, 1997, and the tool itself is still under development, so go in with your eyes open, bestie πŸŽ€

and that's the whole page!! signed off by ASIM/LIP6, dated October 1, 1997, UNFLATABLEXPR(3) all day every day πŸ’–βœ¨πŸŽ€πŸ¦‹ slay.

πŸ“¦ where this page comes from