Core

September 8, 2023 ยท View on GitHub

This is the core fetish. It effectively defines the language. You do not need to manually include it.

Operators

spank

Subtract the RHO from the LHO

Grammar: have, plain
Examples:
Spank Linus nine times

Have Richard spank Linus

C Code:

/* fraction/fraction overload */
LHO=subtract_fractions(LHO, RHO)  

worship

Multiply the LHO with the RHO

Grammar: have, plain
Examples:
Worship Mary's feet

Have Mary worship Gary's throbbing cock

C Code:

/* fraction/fraction overload */
LHO=multiply_fractions(LHO, RHO)  

flog

Divide the LHO by the RHO

Grammar: have, plain
Examples:
Flog Mary

Have Mary flog Gary

C Code:

/* fraction/fraction overload */
LHO=divide_fractions(LHO, RHO)  

lick

Add the RHO from the LHO

Grammar: have, plain
Examples:
Lick Linus's face nine times

Have Richard lick Linus's tummy

C Code:

/* fraction/fraction overload */
LHO=add_fractions(LHO, RHO)  

tickle

Set the LHO to the remainder of the LHO divided by the RHO

Grammar: have, plain
Examples:
tickle Richard

Have Richard tickle Linus

C Code:

/* fraction/fraction overload */
LHO=modulus_fractions(LHO, RHO)  

moan

Assign RHO to LHO

Grammar: make
C Code:

/* fraction/fraction overload */
LHO=RHO  

/* fraction/chain overload */
LHO=chain_to_fraction(RHO)  

/* chain/fraction overload */
clear_chain(&LHO);append_fraction_to_chain(&LHO, RHO)  

/* chain/chain overload */
clear_chain(&LHO); append_chain_to_chain(&LHO, RHO)  

scream

Assign RHO to LHO, with new line

Grammar: make
C Code:

/* chain/fraction overload */
clear_chain(&LHO);append_fraction_to_chain(&LHO, RHO);append_flink_to_chain(&LHO, construct_fraction(10,1));  

/* chain/chain overload */
clear_chain(&LHO);append_chain_to_chain(&LHO, RHO);append_flink_to_chain(&LHO, construct_fraction(10,1));  

torture

Read the next byte from RHO and place it into LHO

Grammar: have
Examples:
Have Mistress torture his cock

C Code:

/* fraction/stream overload */
LHO = get_next_byte_of_stream(RHO)  

tie up

Concat RHO to LHO

Grammar: have
C Code:

/* chain/fraction overload */
append_fraction_to_chain(&LHO, RHO)  

/* chain/chain overload */
append_chain_to_chain(&LHO, RHO)  

hogtie

Concat RHO as fraction to LHO

Grammar: have
C Code:

/* chain/fraction overload */
append_flink_to_chain(&LHO, RHO)  

Comparison Operators

is

Return true if LHO==RHO, else return false

C Code:

/* fraction/fraction overload */
(compare_fractions(LHO, RHO)==0)  

/* chain/chain overload */
(compare_chains(LHO, RHO)==0)  

is not

Return true if LHO!=RHO, else return false

C Code:

/* fraction/fraction overload */
(compare_fractions(LHO, RHO)!=0)  

/* chain/chain overload */
(compare_chains(LHO, RHO)!=0)  

is submissive to

Return true if LHO<RHO, else return false

C Code:

/* fraction/fraction overload */
(compare_fractions(LHO, RHO)==-1)  

is dominant towards

Return true if LHO>RHO, else return false

C Code:

/* fraction/fraction overload */
(compare_fractions(LHO, RHO)==1)  

Builtins

slave

Standard output

Type: stream
Gender: unassigned
C Code: stdout

mistress

Standard input

Type: stream
Gender: female
C Code: stdin

dungeon master

Standard error

Type: stream
Gender: unassigned
C Code: stderr

saint andrew

Chain version of argv with arguments separated by zero, intended to be invoked as Saint Andrew's Cross

Type: chain
Gender: nonperson
C Code: argv_chain