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:
1 parent
e0d4b98655
commit
5daa925803
4 files changed
+86
-92
No files matched your search
+3
-7
@@ -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
|
||||
#
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
|
||||
@@ -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]))
|
||||
|
||||
|
||||
Reference in new issue
Block a user