Fix 1998/fanf for Linux

The C pre-processing stages of the build failed in Linux so instead of
having those steps fanf.c became what was the code that was compiled.
Now it works with both macOS and Linux. This fix required changes to
fanf.c and also the Makefile.

I also removed the address from the README.md file as well.
This commit is contained in:
Cody Boone Ferguson committed 2023-07-06 06:14:06 -07:00
1 parent e0d4b98655
commit 5daa925803
4 files changed
+86 -92

No files matched your search

+3 -7
View File
@@ -38,7 +38,7 @@ include ../../var.mk
# Common C compiler warnings to silence
#
CSILENCE= -Wno-pointer-bool-conversion -Wno-unused-parameter -Wno-main
CSILENCE= -Wno-pointer-bool-conversion -Wno-unused-parameter -Wno-main -Wno-implicit-function-declaration
# Common C compiler warning flags
#
@@ -129,12 +129,8 @@ all: data ${TARGET}
supernova deep_magic magic charon pluto
${PROG}: ${PROG}.c
${RM} -f ${PROG}tmp1.c
${CC} ${CFLAGS} -E $< > ${PROG}tmp1.c
${RM} -f ${PROG}tmp2.c
${CC} ${CFLAGS} -E ${PROG}tmp1.c > ${PROG}tmp2.c
@echo This next compile may take a whie to complete
${CC} ${CFLAGS} ${PROG}tmp2.c ${LIBS} -o $@
@echo This might take a while to complete.
${CC} ${CFLAGS} ${PROG}.c ${LIBS} -o $@
# alternative executable
#
-4
View File
@@ -1,10 +1,6 @@
# Most Obfuscated Translator
Tony Finch
Demon Internet
322 Regent's Park Road
Finchley
London N3 2QQ
United Kingdom
<https://dotat.at>
+77 -81
View File
@@ -1,43 +1,39 @@
#include <stdlib.h>
#include <stdio.h>
#define l #define
#define p(p) l p b ( m p u X )
l i int
l n struct n
l x ){ return (
l A ->
l N n*
#define i int
#define n struct n
#define x ){ return (
#define A ->
#define N n*
n { i c ; N L ; N R ; N U ; N ( * F ) ( N ) ; } ;
l F A F
l U A U
l R A R
l L A L
l m q = malloc(sizeof * q ) Z F =
l e z F ( p ) ) ; }
l f e N
l g z L Q s f
l h ( N p x
l H h p L U Q
l s R z R = q
l t ) ? p : (
l z , p
l Z , q
l Q = p
l w ! p U t p U L Q z Q U ,
l D W p R U = 0 z R Q R F ( p R ) z R F != E t
l W h w
l X z = q , 0
l V w p F = v z L Q
l O m o Z L Q
l M m E Z A c =
l r Z R Q
l u Z U Q
l a ) ) ) ? 0 : j ( !
l k ( i c x
l y 0 ) ; } i
#define F A F
#define U A U
#define R A R
#define L A L
#define m q = malloc(sizeof * q ) Z F =
#define e z F ( p ) ) ; }
#define f e N
#define g z L Q s f
#define h ( N p x
#define H h p L U Q
#define s R z R = q
#define t ) ? p : (
#define z , p
#define Z , q
#define Q = p
#define w ! p U t p U L Q z Q U ,
#define D W p R U = 0 z R Q R F ( p R ) z R F != E t
#define W h w
#define X z = q , 0
#define V w p F = v z L Q
#define O m o Z L Q
#define M m E Z A c =
#define r Z R Q
#define u Z U Q
#define a ) ) ) ? 0 : j ( !
#define k ( i c x
#define y 0 ) ; } i
N q ; N
o H z Q L f
@@ -45,9 +41,9 @@ v H U z Q L f
K W V L R f
J W V R f
I h V R f
#if 0
Y W q Q g
#endif
S W w w O L L R r s , O L R r R R g
E D p F Q L A c - p R A c ? J : K f
P D w putchar ( p L R A c ) , m I g
@@ -56,64 +52,64 @@ p ;
i j k c ? O U r u U U X : y b k y d k y
l d(d) ( ( d a b
l b(b) ( ( b a d
l E(E) b ( M E u X )
#define d(d) ( ( d a b
#define b(b) ( ( b a d
#define E(E) b ( M E u X )
main k i ) ! (
p (I)
p (J)
p (K)
#if 0
p (Y)
#endif
p (P)
p (G)
#define I b ( m I u X )
#define J b ( m J u X )
#define K b ( m K u X )
p (S)
l B b (S (K S) K)
l SS b (B (B S) B)
l C b (SS B S (K K))
l CC b (B (B C) B)
l BB b (CC B (B B B) B)
l Y b (S (C B (S I I)) (C B (S I I)))
l CI b (C I)
#define P b ( m P u X )
#define G b ( m G u X )
l ef E(EOF)
l sp E(' ')
l ob E('(')
l cb E(')')
l lm E('\\')
l nl E('\n')
l ht E('\t')
l qs E('S')
l qk E('K')
l qi E('I')
#define S b ( m S u X )
#define B b (S (K S) K)
#define SS b (B (B S) B)
#define C b (SS B S (K K))
#define CC b (B (B C) B)
#define BB b (CC B (B B B) B)
l pair b (BB (B (B K)) C CI)
l atom b (B K CI)
#define Y b (S (C B (S I I)) (C B (S I I)))
l bind b (CC B B C)
#define CI b (C I)
l ore b (SS (CI K))
l gns b (Y (B (bind G) (CC S (C (ore sp (ore nl ht))) CI)))
#define ef E((-1))
#define sp E(' ')
#define ob E('(')
#define cb E(')')
#define lm E('\\')
#define nl E('\n')
#define ht E('\t')
#define qs E('S')
#define qk E('K')
#define qi E('I')
l pr b (Y (CC C (BB CI (B (BB (bind (P ob)) K)) (SS C (CC C (BB BB bind) K) (C (CC bind) (K (P cb))))) P))
#define pair b (BB (B (B K)) C CI)
#define atom b (B K CI)
l trans b (Y (B (bind gns) (S (BB S (C lm) lam) (C (BB S (C ob) brac) (S (C cb (CI (atom sp))) (S (C ef (CI (atom sp))) (B CI atom)))))))
#define bind b (CC B B C)
l brac b (S bind (B Y (C (BB B B bind) (S (BB S (BB S (S I)) (CC (BB (B K)) (BB K) pair)) (CC S (CC BB (BB C (C (CI sp)) CI)) pair)))))
l lam b (B (bind gns) (C (CC BB bind (B CI)) abs))
#define ore b (SS (CI K))
#define gns b (Y (B (bind G) (CC S (C (ore sp (ore nl ht))) CI)))
l abs b (Y (C (BB S (BB C CI) (SS S (BB C (BB B opt)) I)) (CC S (C C (atom qi)) (B (pair (atom qk)) atom))))
#define pr b (Y (CC C (BB CI (B (BB (bind (P ob)) K)) (SS C (CC C (BB BB bind) K) (C (CC bind) (K (P cb))))) P))
l make b (B pair (pair (atom qs)))
#define trans b (Y (B (bind gns) (S (BB S (C lm) lam) (C (BB S (C ob) brac) (S (C cb (CI (atom sp))) (S (C ef (CI (atom sp))) (B CI atom)))))))
l opt b (S (S I (S (BB (CC B) CI (BB K K make)) (S (BB C (BB C (C (CI qk))) (SS (SS S) (S (BB (BB (S I)) S (BB (BB (CC B) CI) (BB K K) make)) (B (CC B (BB (CC C) (BB (C (CI qk)) (pair (atom qk))) pair)) make)) (B (C (BB B C (C (CI qi)))) make))) make))) (B K make))
#define brac b (S bind (B Y (C (BB B B bind) (S (BB S (BB S (S I)) (CC (BB (B K)) (BB K) pair)) (CC S (CC BB (BB C (C (CI sp)) CI)) pair)))))
#define lam b (B (bind gns) (C (CC BB bind (B CI)) abs))
#define abs b (Y (C (BB S (BB C CI) (SS S (BB C (BB B opt)) I)) (CC S (C C (atom qi)) (B (pair (atom qk)) atom))))
#define make b (B pair (pair (atom qs)))
#define opt b (S (S I (S (BB (CC B) CI (BB K K make)) (S (BB C (BB C (C (CI qk))) (SS (SS S) (S (BB (BB (S I)) S (BB (BB (CC B) CI) (BB K K) make)) (B (CC B (BB (CC C) (BB (C (CI qk)) (pair (atom qk))) pair)) make)) (B (C (BB B C (C (CI qi)))) make))) make))) (B K make))
(bind (bind trans pr) (P nl) I)
+6
View File
@@ -708,6 +708,12 @@ README.md file.
Cody added a call to `endwin()` to restore terminal sanity (echo etc.) when
exiting the program.
## [1998/fanf](1998/fanf/fanf.c) ([README.md](1998/fanf/README.md))
Cody fixed this for Linux. The problem was the intermediate steps to get to the
final code that is compiled. The entry itself is what was essentially what used
to be compiled. Now it works with both Linux and macOS (and BSD?).
## [1998/schnitzi](1998/schnitzi/schnitzi.c) ([README.md](1998/schnitzi/README.md]))