Merge pull request #863 from xexyl/1998-fanf
This commit is contained in:
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