CREATEABLXORBINEXPR(3)

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

πŸ’– CREATEABLXORBINEXPR(3) β€” the ABL FUNCTIONS girlies πŸ’–

okay bestie, sit down, hydrate, and let me tell you about createablxorbinexpr β€” yes that's the whole name, no we're not abbreviating it, it's iconic and it knows it. This lives in the ABL FUNCTIONS manual section, section 3, library call energy, and it is literally the function that makes you an xor or an xnor operator expression. slay. πŸ¦‹


🌸 NAME 🌸

createablxorbinexpr β€” creates an 'xor' or 'xnor' operator expression. that's it, that's the job, and she does it flawlessly. πŸ’…


🌈 ORIGIN 🌈

so where does this queen come from?? This software belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France. πŸ‡«πŸ‡·βœ¨ parisian AND good at boolean algebra?? we love a multihyphenate.


✨ SYNOPSIS ✨

the whole vibe, verbatim, do not touch:

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

πŸŽ€ PARAMETERS πŸŽ€

  • Oper β€” the operator bestie. It's either ABL_XOR or ABL_NXOR. those are the only two options, she does not do variety, she does do consistency. πŸ‘‘
  • Expr1 β€” first expression. the first one. the OG.
  • Expr2 β€” second expression. the sequel. the remix.

πŸ’… DESCRIPTION πŸ’…

createablxorbinexpr creates a binary 'xor' or 'xnor' operator expression with the 'and', 'or' form. so like, she's out here building it out of ands and ors, which is lowkey genius if you think about it. createablbinexpr simplifies eventually the sub-expressions β€” yes, that's the other function, keep up, they're a duo, a duo, a duo. 🫢

⚠️ the way that Expr1 and Expr2 MUSTN'T be used after the call to this function!! fr fr. she takes ownership. the expression pointers are consumed. if you go touching them afterwards that is a you problem and the you problem will be undefined-coded. not me warning you twice. πŸ’€

⭐ RETURN VALUE ⭐

createablxorbinexpr returns a pointer to the new operator expression. new expression, fresh out the box, chain_list βˆ—, main character energy, no cap. 🌟


πŸ”₯ ERRORS πŸ”₯

  • "ablcreate: bad operator xx !" β€” thrown when the operator isn't right. Operator must be ABL_XOR or ABL_NXOR. that's the rule. that's the whole rule. don't test her. πŸ™ˆ

🧚 EXAMPLE 🧚

here's the moment you've all been waiting for, the demo, the runway walk:

#include "abl101.h"
   chain_list βˆ—ExprA;
   chain_list βˆ—ExprB;
   chain_list βˆ—ExprAxorB;
   ExprA = createablatom( "a" );
   ExprB = createablatom( "b" );
   ExprAxorB  = createablxorbinexpr( ABL_XOR, ExprA, ExprB );
   /* displays (a and (not b) or (b and (not a)) */
   viewablexpr( ExprAxorB, ABL_VIEW_VHDL );

and yes the comment is telling you it displays (a and (not b) or (b and (not a)) β€” that is genuinely what xor looks like when you stretch it out into ands and ors. it's giving ✨expanded form✨. she ate. πŸ“


πŸ‘‘ SEE ALSO πŸ‘‘

go read these too, they're all in 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. so like, if something's weird, TELL THEM. they're asking. they want the feedback. this is a safe space. πŸ˜­πŸ’œ


ASIM/LIP6 Β· October 1, 1997 β€” yeah bestie this page is older than most of us and she's still serving. mwah. πŸ’‹ periodt. πŸŒˆβ­πŸŽ€