Re: YAPL - Yet Another Programming Language
Roberto Waltman said:
Your wish is my command.
Here is the source code for a compiler for the BETTIE (Begin/Else/Then/er,
Then/If/End) language:
/* BETTIE Compiler
The BETTIE (Begin/Else/Then/er, Then/If/End) language
has five keywords: BEGIN, ELSE, THEN, IF, and END.
I'll let you figure out the semantics for yourself.
Richard Heathfield, 1 July 2008
*/
#include <stdio.h>
#include <string.h>
#define LW 16
int t(unsigned long int n)
{
static unsigned long l = 0;
char x[] = "Oh? Oh! Oh okay.";
l==0 || putchar(' ');
putchar(x[(n & 0xFF000000) >24]);
putchar(x[(n & 0xFF0000) >16]);
putchar(x[(n & 0xFF00) >8]);
putchar(x[n & 0xFF]);
++l==LW && putchar('\n');
l%=LW;
return 1;
}
int main(void)
{
char i[256] = {0};
int ms = 0;
while(1 == scanf("%255s", i))
{
if(strcmp(i, "ELSE") == 0)
{
ms = !ms;
}
else
{
if(strcmp(i, "BEGIN") == 0)
{
(ms && t(0xB0C0F) && t(0xB0C06)) ||
(t(0xB0C06) && t(0xB0C02));
}
else if(strcmp(i, "END") == 0)
{
(ms && t(0xB0C06) && t(0xB0C0F)) ||
(t(0xB0C02) && t(0xB0C06));
}
else if(strcmp(i, "THEN") == 0)
{
(ms && t(0xB0C0F) && t(0xB0C02)) ||
(t(0xB0C02) && t(0xB0C0F));
}
else if(strcmp(i, "IF") == 0)
{
(ms && t(0xB0C0F) && t(0xB0C0F)) ||
(t(0xB0C06) && t(0xB0C06));
}
else
{
fprintf(stderr, "Syntax error: %s\n", i);
}
}
}
putchar('\n');
return 0;
}
And here is a "hello world" program written in BETTIE:
ELSE THEN IF IF IF IF IF IF IF IF IF ELSE BEGIN THEN ELSE IF
IF IF IF IF IF IF IF THEN ELSE IF END THEN ELSE END THEN IF IF
IF IF IF IF IF ELSE BEGIN THEN ELSE IF IF IF IF THEN ELSE IF
END THEN ELSE IF END IF IF IF IF IF IF IF END END IF IF IF END
THEN THEN THEN IF IF IF IF IF IF IF IF ELSE BEGIN THEN ELSE IF
IF IF IF THEN ELSE IF END THEN ELSE END THEN THEN THEN IF IF
IF IF IF IF IF IF IF IF ELSE BEGIN THEN ELSE IF IF IF IF IF IF
IF IF IF THEN ELSE IF END THEN IF IF IF ELSE END ELSE THEN THEN
THEN THEN ELSE END IF IF IF END ELSE IF IF IF IF IF IF ELSE END
ELSE IF IF IF IF IF IF IF IF ELSE END THEN THEN IF END
--
Richard Heathfield <http://www.cpax.org.uk >
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Roberto Waltman said:
<adem24@adem24a dem24.org.inval idwrote:
>
Wonderful! What the world needs is one more language that allows you
to write:
>
"IF IF THEN THEN ELSE IF ELSE THEN IF ELSE IF END THEN BEGIN ELSE IF;"
>
or something like that...
>
>>... a new programming language is needed ...
>>...
>8) There are no reserved words.
>>
>>...
>8) There are no reserved words.
>>
to write:
>
"IF IF THEN THEN ELSE IF ELSE THEN IF ELSE IF END THEN BEGIN ELSE IF;"
>
or something like that...
Here is the source code for a compiler for the BETTIE (Begin/Else/Then/er,
Then/If/End) language:
/* BETTIE Compiler
The BETTIE (Begin/Else/Then/er, Then/If/End) language
has five keywords: BEGIN, ELSE, THEN, IF, and END.
I'll let you figure out the semantics for yourself.
Richard Heathfield, 1 July 2008
*/
#include <stdio.h>
#include <string.h>
#define LW 16
int t(unsigned long int n)
{
static unsigned long l = 0;
char x[] = "Oh? Oh! Oh okay.";
l==0 || putchar(' ');
putchar(x[(n & 0xFF000000) >24]);
putchar(x[(n & 0xFF0000) >16]);
putchar(x[(n & 0xFF00) >8]);
putchar(x[n & 0xFF]);
++l==LW && putchar('\n');
l%=LW;
return 1;
}
int main(void)
{
char i[256] = {0};
int ms = 0;
while(1 == scanf("%255s", i))
{
if(strcmp(i, "ELSE") == 0)
{
ms = !ms;
}
else
{
if(strcmp(i, "BEGIN") == 0)
{
(ms && t(0xB0C0F) && t(0xB0C06)) ||
(t(0xB0C06) && t(0xB0C02));
}
else if(strcmp(i, "END") == 0)
{
(ms && t(0xB0C06) && t(0xB0C0F)) ||
(t(0xB0C02) && t(0xB0C06));
}
else if(strcmp(i, "THEN") == 0)
{
(ms && t(0xB0C0F) && t(0xB0C02)) ||
(t(0xB0C02) && t(0xB0C0F));
}
else if(strcmp(i, "IF") == 0)
{
(ms && t(0xB0C0F) && t(0xB0C0F)) ||
(t(0xB0C06) && t(0xB0C06));
}
else
{
fprintf(stderr, "Syntax error: %s\n", i);
}
}
}
putchar('\n');
return 0;
}
And here is a "hello world" program written in BETTIE:
ELSE THEN IF IF IF IF IF IF IF IF IF ELSE BEGIN THEN ELSE IF
IF IF IF IF IF IF IF THEN ELSE IF END THEN ELSE END THEN IF IF
IF IF IF IF IF ELSE BEGIN THEN ELSE IF IF IF IF THEN ELSE IF
END THEN ELSE IF END IF IF IF IF IF IF IF END END IF IF IF END
THEN THEN THEN IF IF IF IF IF IF IF IF ELSE BEGIN THEN ELSE IF
IF IF IF THEN ELSE IF END THEN ELSE END THEN THEN THEN IF IF
IF IF IF IF IF IF IF IF ELSE BEGIN THEN ELSE IF IF IF IF IF IF
IF IF IF THEN ELSE IF END THEN IF IF IF ELSE END ELSE THEN THEN
THEN THEN ELSE END IF IF IF END ELSE IF IF IF IF IF IF ELSE END
ELSE IF IF IF IF IF IF IF IF ELSE END THEN THEN IF END
--
Richard Heathfield <http://www.cpax.org.uk >
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Comment