1
0
mirror of https://github.com/RevCurtisP/C02.git synced 2024-11-22 16:34:15 +00:00
C02/test/example.c02

59 lines
2.0 KiB
Plaintext

/* C02 Syntax Examples */
/* Constants */
const #TRUE = $FF, #FALSE = 0; //Constant
enum {BLACK, WHITE, RED, CYAN, PURPLE, GREEN, BLUE, YELLOW};
/* Structures */
struct record {char name[8]; char index;}; //Struct Definition
struct record rec; //Struct Declaration
/* Declarations */
char i, j; //Variables
char debug = #TRUE; //Variable initialized to constant
char flag = %01010101; //Variable initialized to literal
char r[7]; //8 byte Array
char s = "string"; //Array initialized to string
char m = {1,2,3}; //Array initialized to list
char isdgt(); //Forward declaration of function
/* Assignments */
hmove; s80vid; //Implicit Assignments
x = 0; y = a; a = 1; //Register Assignments
b = c + d - e & f | g ^ h; //Assignment and Expression
d[j] = r[i] + s[x] + t[y]; //Array Indexing
a<< ;b[i]>>; x++; y--; //Post-Operations
/* Function Calls */
i = abs(n); j = min(b,c), k = max(d,e); plot(h,v,c);
n = mult(e+f, div(m+n,d)) - t;
puts("string"); putc(#CR); fputs(fp, &line);
c = getc(); i = strchr(c, &s); row,col = scnpos();
push d,r; mult(); pop p; //Pass via Stack
iprint(); inline "Hello World"; //Pass Inline String
irect(); inline 10,10,100,100; //Pass Inline Parameters
/* Control Structures */
if (c = 27) goto end;
if (n) q = div(n,d) else puts("Division by 0!");
if (!fp) putln("File not opened");
i = 0; while (c < 10) { prbyte(i); i++; }
while() { c=rdkey; if (c=0) continue; putchr(c); if (c==13) break; }
do c = rdkey(); while (c=0);
do (c = getchr(); putchr(c); while (c<>13)
for (c='A'; c<='Z'; c++) putc(c);
for (i=strlen(s)-1;i:+;i--) putc(s[i]);
for (i=0;c>0;i++) { c=getc(); s[i]=c }
select (getc()) {
case $0D: putln("The Enter key");
case 'A','a': putln ("The letter A");
default: putln("some other key");
}
end: //Label
/* Function Declaration */
char isdgt(tmp) {
if (tmp >= '0') if (tmp <= '9') return true;
return false;
}