Libraries of CamphorScript

0. Dependencies


When two libraries are connected by a line, the lower one depends on the upper one.

1. <fixdecl>

Includes: (nothing)
Precedence Declaration:
infixl 0(,)
infixr 5(=), (+=), (-=), (=~), (+=~), (-=~), (+=!~), (=!~), (-|=), (-|=~)
infixl 35(+), (-), (+~), (-~)
infixl 40(*), (%), (*~), (/), (/~)
Definition of function and operators: (none)

2. <eq_til>

Includes: <fixdecl>
Precedence Declaration: (none)
Definition of function and operators:
DefinitionHow to useexpressed in C
void (+=~)(char& a;char& z)a+= ~z;a+=z, z=0;
void (+=~)(char& a,char& b;char& z)(a,b)+= ~z;a+=z, b+=z, z=0;
void (+=~)(char& a;char& z * constant char N)a+= ~z*N;a+=z*N, z=0;
void (-=~)(char& a;char& z)a-= ~z;a-=z, z=0;
void (-=~)(char& a,char& b;char& z)(a,b)-= ~z;a-=z, b-=z, z=0;
void (-=~)(char& a;char& z * constant char N)a-= ~z*N;a-=z*N, z=0
void (=~)(char& a;char& z)a= ~z;a=z, z=0;
void (=~)(char& a,char& b;char& z)(a,b)= ~z;a=z, b=z, z=0;
void (=~)(char& a;char& z * constant char N)a= ~z*N;a=z*N, z=0;

3. <eq_bang_til>

Includes: <fixdecl>
Precedence Declaration: (none)
Definition of function and operators:
DefinitionHow to useexpressed in C
void (+=!~)(char& a;char& z)a+= !~z;a+= !z, z=0;
void (+=!~)(char& a,char& b;char& z)(a,b)+= !~z;a+= !z, b+= !z, z=0;
void (=!~)(char& a;char& z)a= !~z;a= !z, z=0;
void (=!~)(char& a,char& b;char& z)(a,b)= !~z;a= !z, b= !z, z=0;

4. <stdcalc>

Includes: <fixdecl>, <eq_til>, <eq_bang_til>
Precedence Declaration: (none)
Definition of function and operators:
DefinitionHow to useexpressed in C
void clear(char& a)clear(a);a=0;
void (=)(char& a;constant char N)a=N;a=N;
void (+=)(char& a;char& b)a+=b;a+=b;
void (+=)(char& a;constant char N *~ char& z)a+= N * ~z;a += N * z, z=0;
void (-|=~)(char& a;char& b)a -|= ~b;a= (a>b ? a-b : 0), b=0;

5. <div>

Includes: <stdcalc>
Precedence Declaration:
infixr 5(+<-~), (<-~), (-|=)
infixl 40(/)
Definition of function and operators:
DefinitionHow to useexpressed in C
void (-|=) (char& a; const char N)a -|= N;a= (a>N ? a-N : 0);
void (+=)(char&a,char&b;char&c)(a,b) += c;a+=c, b+=c;
void (+<-~) (char& quot, char& rem; char& a / const char N)(quot, rem)+ <- ~a / N;quot += a / N, rem += a % N, a=0;
void sprint(char& x1, char& x2, char& x3 +<-~ char& a)sprint(x1, x2, x3 + <- ~a);x3 += a % 10, x2 += (a/10) % 10, x1 += a/100, a=0;

6. <stdcalc2>

Includes: <stdcalc>
Definition of function and operators:
DefinitionHow to useexpressed in C
void (+=)(char&a; constant char M * constant char N)a += M*N;a += M*N;
void (-=)(char&a; constant char M * constant char N)a -= M*N;a -= M*N;

7. <conditional>

Includes: <stdcalc2>
Definition of syntaxes:
DefinitionHow to useexpressed in C
syntax unless(~char& a){block}unless(~a){/*block*/}if(!a){a=0; {/*block*/}}
syntax unless(char& a){block}unless(a){/*block*/}if(!a){/*block*/}
syntax unless(constant char N - char& a){block}unless(N-a){/*block*/}if(!(N-a)){/*block*/}

Names of characters

Some libraries are named from the operator defined there. The following shows how an operator should be transliterated.
= eq
! bang
+ plus
- min
* star
~ til
% per
& and
, com
/ div
: col
< lt
> gt
? q
@ at
| pipe
^ hat