CREATEABLBINEXPR(3)

πŸ“¦ version 5.1.1, in fedora 43, fedora 44

πŸ’– CREATEABLBINEXPR β€” the "make me a binary operator expression" era πŸ’–

okay bestie, gather round, because we're talking about createablbinexpr(3) from the ABL FUNCTIONS corner of the world. this is a manual page, it's giving ✨academic✨, but I'm gonna walk you through it like we're texting at 2am. no cap.


🌸 NAME 🌸

createablbinexpr β€” literally just... creates a binary operator expression. that's the whole job. that's her main character moment. πŸ’…


πŸ¦‹ ORIGIN πŸ¦‹

okay so this software belongs to the ALLIANCE CAD SYSTEM, which was developed by the ASIM team over at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France. πŸ‡«πŸ‡· iconic location honestly.


✨ SYNOPSIS ✨

#include "abl101.h"
chain_list βˆ—createablbinexpr( Oper, Expr1, Expr2 )
  long        Oper;
  chain_list βˆ—Expr1;
  chain_list βˆ—Expr2;

πŸŽ€ PARAMETERS πŸŽ€

  • Oper β€” the operator number. yes, just the number. the vibe of the operator, numerically. πŸ”’
  • Expr1 β€” the first expression. the OG. the one who came first.
  • Expr2 β€” the second expression. the sequel. the part two. πŸ“

πŸ’œ DESCRIPTION πŸ’œ

so createablbinexpr creates the binary operator expression Expr1 Operator Expr2. like, it literally glues them together with the operator in the middle and hands you back the whole thing. slay.

here's the lil plot twist though: if the operator of Expr1 and/or Expr2, and Operator, are identicals, then createablbinexpr merges eventually the sub-expressions. so sometimes it's not just stacking, it's merging. iykyk.

⚠️ okay listen, this part is IMPORTANT: the expression pointers Expr1 and Expr2 MUSTN'T be used after the call to this function. like, they're gone bestie. consumed. don't text them back, don't reference them, don't even look at them. the function took them and that's that. 😭

πŸ‘‘ RETURN VALUE πŸ‘‘

createablbinexpr returns a pointer to the new operator expression. fresh out the oven, still warm, ready to be used. ✨


πŸ’€ ERRORS πŸ’€

  • "ablcreate: bad operator xx !" β€” this happens when Operator isn't defined, or isn't a binary operator. so like... you gotta give her a real one. Operator must be defined and must be a binary operator. periodt.

🌈 EXAMPLE 🌈

here's what it actually looks like in the wild, fr fr:

#include "abl101.h"
   chain_list βˆ—ExprA;
   chain_list βˆ—ExprB;
   chain_list βˆ—ExprAorB;
   ExprA = createablatom( "a" );
   ExprB = createablatom( "b" );
   ExprAorB  = createablbinexpr( ABL_OR, ExprA, ExprB );

like look at her. two atoms, "a" and "b", and then boom β€” ABL_OR and we got ourselves an ExprAorB. ate. 🫢


πŸ”₯ SEE ALSO πŸ”₯

go read those too, they're all part of the same friend group. πŸ’–


πŸ™ˆ BUG REPORT πŸ™ˆ

this tool is under development at the ASIM department of the LIP6 laboratory.

we need your feedback to improve documentation and tools. like genuinely, they're asking. so if something's weird, tell them. don't be shy bestie. πŸ’Œ


and that's the whole page!! this lil cutie is brought to you by ASIM/LIP6, dated October 1, 1997 β€” yeah she's vintage, she's a classic, she's still out here serving. πŸ’…βœ¨ bye bestie, go create some binary operator expressions πŸ¦‹