aboutsummaryrefslogtreecommitdiff
path: root/SlackYouInterpreter
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2026-03-26 19:27:18 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2026-03-26 19:27:18 +0100
commit7167b4341ef290d56fb96e2af10883a4b925d83b (patch)
tree1eb1b9e5ab82ddd89540e68d6b22ae69514575c6 /SlackYouInterpreter
downloadancient-projects-master.tar.gz
ancient-projects-master.zip
I found my old code!HEADmaster
Diffstat (limited to 'SlackYouInterpreter')
-rwxr-xr-xSlackYouInterpreter/README.txt29
-rwxr-xr-xSlackYouInterpreter/SlackYouInterpreter-1.1/src/Frame.java209
-rwxr-xr-xSlackYouInterpreter/SlackYouInterpreter-1.1/src/HelloWorld.sky12
-rwxr-xr-xSlackYouInterpreter/SlackYouInterpreter-1.1/src/Main.java325
-rwxr-xr-xSlackYouInterpreter/SlackYouInterpreter.jarbin0 -> 11315 bytes
5 files changed, 575 insertions, 0 deletions
diff --git a/SlackYouInterpreter/README.txt b/SlackYouInterpreter/README.txt
new file mode 100755
index 0000000..2585bf8
--- /dev/null
+++ b/SlackYouInterpreter/README.txt
@@ -0,0 +1,29 @@
1SlackYou è un linguaggio di programmazione esoterico, ispirato al famoso BrainFuck, ma con molte funzionalità in più.
2Innanzitutto in SlackYou l'array di byte è bidimensionale.
3Il linguaggio è case-sensitive. Ogni carattere che non è valido come comando può essere usato come commento,
4inclusi i caratteri-comando scritti in maiuscolo. Tutti gli altri comandi sono spiegati nella lista seguente:
5
6. Incrementa di 1 il byte al puntatore. Corrisponde al + in BF.
7, Decrementa di 1 il byte al puntatore. Corrisponde al - in BF.
8> Incrementa il puntatore orizzontale, come in BF.
9< Decrementa il puntatore orizzontale, come in BF.
10v Incrementa il puntatore verticale.
11^ Decrementa il puntatore verticale.
12+ Somma il byte al puntatore con il byte alla sua destra. Il risultato viene memorizzato nel byte al puntatore.
13- Come sopra, ma sottrae.
14* Come sopra, ma moltiplica.
15/ Come sopra, ma esegue una divisione euclidea (senza virgola e senza resto).
16% Come sopra, ma esegue l'operatore modulo (restituisce il resto della divisione euclidea).
17j Copia il byte al puntatore nel byte a destra e incrementa il puntatore orizzontale.
18g Copia il byte al puntatore nel byte a sinistra e decrementa il puntatore orizzontale.
19y Copia il byte al puntatore nel byte sopra e decrementa il puntatore verticale.
20h Copia il byte al puntatore nel byte sotto e incrementa il puntatore verticale.
21=xy Se x e y sono cifre esadecimali (da '0' a '9' e da 'a' a 'f') il byte al puntatore assume il valore esadecimale xy.
22r Memorizza nel byte al puntatore il codice ASCII del carattere digitato in input.
23w Scrive in output il byte al puntatore tradotto in carattere ASCII.
24? Se il byte al puntatore è 0, salta avanti fino all'istruzione dopo il corrispondente comando ; o :.
25! Se il byte al puntatore non è 0, salta avanti fino all'istruzione dopo il corrispondente comando : o ;.
26; Se il byte al puntatore non è 0, salta indietro fino all'istruzione dopo il corrispondente comando ? o !.
27: Se il byte al puntatore è 0, salta indietro fino all'istruzione dopo il corrispondedente comando ! o ?.
28
29Nella cartella src trovate alcuni esempi di programmi in questo linguaggio. \ No newline at end of file
diff --git a/SlackYouInterpreter/SlackYouInterpreter-1.1/src/Frame.java b/SlackYouInterpreter/SlackYouInterpreter-1.1/src/Frame.java
new file mode 100755
index 0000000..c163980
--- /dev/null
+++ b/SlackYouInterpreter/SlackYouInterpreter-1.1/src/Frame.java
@@ -0,0 +1,209 @@
1/*
2Copyright 2009 Sebastiano Tronto <sebastiano@luganega.org>
3
4This file is part of SlackYouInterpreter.
5
6 SlackYouInterpreter is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 SlackYouInterpreter is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with SlackYouInterpreter; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
20*/
21
22import javax.swing.*;
23import java.awt.BorderLayout;
24import java.awt.event.*;
25import java.io.*;
26
27public class Frame extends JFrame {
28 public static int valoreChooser;
29 public static boolean firstSave;
30 public static String defaultSave;
31 public static Main main;
32 public static JTextArea textArea;
33 public static JButton runButton;
34 public static JMenuBar bar;
35 public static JMenu menuFile, menuAiuto;
36 public static JMenuItem esci, esegui, salva, salvaConNome, apri, info;
37 public static JFileChooser chooser;
38 public static FileInputStream in;
39 public static FileOutputStream out;
40 public Frame() {
41 super( "Porky's SlackYouInterpreter - v1.1" );
42 firstSave = true;
43 main = new Main();
44 defaultSave = "";
45 chooser = new JFileChooser();
46 textArea = new JTextArea( "Digitare qui il codice SlackYou", 15, 15 );
47 bar = new JMenuBar();
48 menuFile = new JMenu( "File" );
49 menuAiuto = new JMenu( "?" );
50 esci = new JMenuItem( "Esci" );
51 esegui = new JMenuItem( "Esegui" );
52 salva = new JMenuItem( "Salva" );
53 salvaConNome = new JMenuItem( "Salva con nome" );
54 apri = new JMenuItem( "Apri" );
55 info = new JMenuItem( "Aiuto" );
56 menuFile.setMnemonic( 'F' );
57 menuAiuto.setMnemonic( '?' );
58 esci.setMnemonic( 'E' );
59 esegui.setMnemonic( 's' );
60 salva.setMnemonic( 'a' );
61 salvaConNome.setMnemonic( 'n' );
62 apri.setMnemonic( 'p' );
63 info.setMnemonic( 'i' );
64 esci.addActionListener(
65 new ActionListener() {
66 public void actionPerformed ( ActionEvent e ) {
67 System.exit( 0 );
68 }
69 }
70 );
71 esegui.addActionListener(
72 new ActionListener() {
73 public void actionPerformed ( ActionEvent e ) {
74 main.run( textArea.getText() );
75 }
76 }
77 );
78 salva.addActionListener(
79 new ActionListener() {
80 public void actionPerformed ( ActionEvent e ) {
81 if ( firstSave ) {
82 valoreChooser = chooser.showSaveDialog( Frame.this );
83 switch ( valoreChooser ) {
84 case JFileChooser.APPROVE_OPTION:
85 try {
86 out = new FileOutputStream( chooser.getSelectedFile().getPath() );
87 defaultSave = chooser.getSelectedFile().getPath();
88 char caratteri[];
89 byte bytes[];
90 caratteri = textArea.getText().toCharArray();
91 bytes = new byte[caratteri.length];
92 for ( int i = 0; i < caratteri.length; i++ )
93 bytes[i] = ( byte ) caratteri[i];
94 out.write( bytes );
95 } catch ( Exception ex ) {
96 JOptionPane.showMessageDialog( Frame.this, "Errore sconosciuto:\n\n" + ex + "\n\nPer favore riportare il bug a sebastiano@luganega.org", "SlackYou - Errore", JOptionPane.ERROR_MESSAGE );
97 }
98 break;
99 case JFileChooser.ERROR_OPTION:
100 JOptionPane.showMessageDialog( Frame.this, "Errore sconosciuto:\n\n" + e + "\n\nPer favore riportare il bug a sebastiano@luganega.org", "SlackYou - Errore", JOptionPane.ERROR_MESSAGE );
101 break;
102 //case JFileChooser.CANCEL_OPTION:
103 }
104 firstSave = false;
105 } else {
106 try {
107 out = new FileOutputStream( defaultSave );
108 char caratteri[];
109 byte bytes[];
110 caratteri = textArea.getText().toCharArray();
111 bytes = new byte[caratteri.length];
112 for ( int i = 0; i < caratteri.length; i++ )
113 bytes[i] = ( byte ) caratteri[i];
114 out.write( bytes );
115 } catch ( Exception ex ) {
116 JOptionPane.showMessageDialog( Frame.this, "Errore sconosciuto:\n\n" + ex + "\n\nPer favore riportare il bug a sebastiano@luganega.org", "SlackYou - Errore", JOptionPane.ERROR_MESSAGE );
117 }
118 }
119 }
120 }
121 );
122 salvaConNome.addActionListener(
123 new ActionListener() {
124 public void actionPerformed ( ActionEvent e ) {
125 valoreChooser = chooser.showSaveDialog( Frame.this );
126 switch ( valoreChooser ) {
127 case JFileChooser.APPROVE_OPTION:
128 try {
129 out = new FileOutputStream( chooser.getSelectedFile().getPath() );
130 defaultSave = chooser.getSelectedFile().getPath();
131 char caratteri[];
132 byte bytes[];
133 caratteri = textArea.getText().toCharArray();
134 bytes = new byte[caratteri.length];
135 for ( int i = 0; i < caratteri.length; i++ )
136 bytes[i] = ( byte ) caratteri[i];
137 out.write( bytes );
138 } catch ( Exception ex ) {
139 JOptionPane.showMessageDialog( Frame.this, "Errore sconosciuto:\n\n" + ex + "\n\nPer favore riportare il bug a sebastiano@luganega.org", "SlackYou - Errore", JOptionPane.ERROR_MESSAGE );
140 }
141 break;
142 case JFileChooser.ERROR_OPTION:
143 JOptionPane.showMessageDialog( Frame.this, "Errore sconosciuto:\n\n" + e + "\n\nPer favore riportare il bug a sebastiano@luganega.org", "SlackYou - Errore", JOptionPane.ERROR_MESSAGE );
144 break;
145 //case JFileChooser.CANCEL_OPTION:
146 }
147 firstSave = false;
148 }
149 }
150 );
151 apri.addActionListener(
152 new ActionListener() {
153 public void actionPerformed ( ActionEvent e ) {
154 valoreChooser = chooser.showOpenDialog( Frame.this );
155 switch ( valoreChooser ) {
156 case JFileChooser.APPROVE_OPTION:
157 try {
158 String stringa;
159 byte bytes[];
160 char caratteri[];
161 in = new FileInputStream( chooser.getSelectedFile().getPath() );
162 bytes = new byte[in.available()];
163 caratteri = new char[in.available()];
164 in.read( bytes );
165 for ( int i = 0; i < bytes.length; i++ )
166 caratteri[i] = ( char ) bytes[i];
167 stringa = new String( caratteri );
168 textArea.setText( stringa );
169 } catch ( Exception ex ) {
170 JOptionPane.showMessageDialog( Frame.this, "Errore sconosciuto:\n\n" + ex + "\n\nPer favore riportare il bug a sebastiano@luganega.org", "SlackYou - Errore", JOptionPane.ERROR_MESSAGE );
171 }
172 break;
173 case JFileChooser.ERROR_OPTION:
174 JOptionPane.showMessageDialog( Frame.this, "Errore sconosciuto:\n\n" + e + "\n\nPer favore riportare il bug a sebastiano@luganega.org", "SlackYou - Errore", JOptionPane.ERROR_MESSAGE );
175 break;
176 //case JFileChooser.CANCEL_OPTION:
177 }
178 }
179 }
180 );
181 info.addActionListener(
182 new ActionListener() {
183 public void actionPerformed ( ActionEvent e ) {
184 JOptionPane.showMessageDialog( Frame.this, "SlackYou è un linguaggio di programmazione esoterico,\n ispirato al famoso BrainFuck, ma con molte funzionalità in più.\nInnanzitutto in SlackYou l'array di byte è bidimensionale.\nIl linguaggio è case-sensitive. Ogni carattere che non è valido\ncome comando può essere usato come commento,\ninclusi i caratteri-comando scritti in maiuscolo.\nTutti gli altri comandi sono spiegati nella lista seguente:\n\n. Incrementa di 1 il byte al puntatore. Corrisponde al + in BF.\n, Decrementa di 1 il byte al puntatore. Corrisponde al - in BF.\n> Incrementa il puntatore orizzontale, come in BF.\n< Decrementa il puntatore orizzontale, come in BF.\nv Incrementa il puntatore verticale.\n^ Decrementa il puntatore verticale.\n+ Somma il byte al puntatore con il byte alla sua destra. Il risultato viene memorizzato nel byte al puntatore.\n- Come sopra, ma sottrae.\n* Come sopra, ma moltiplica.\n/ Come sopra, ma esegue una divisione euclidea (senza virgola e senza resto).\n% Come sopra, ma esegue l'operatore modulo (restituisce il resto della divisione euclidea).\nj Copia il byte al puntatore nel byte a destra e incrementa il puntatore orizzontale.\ng Copia il byte al puntatore nel byte a sinistra e decrementa il puntatore orizzontale.\ny Copia il byte al puntatore nel byte sopra e decrementa il puntatore verticale.\nh Copia il byte al puntatore nel byte sotto e incrementa il puntatore verticale.\n=xy Se x e y sono cifre esadecimali (da '0' a '9' e da 'a' a 'f') il byte al puntatore assume il valore esadecimale xy.\nr Memorizza nel byte al puntatore il codice ASCII del carattere digitato in input.\nw Scrive in output il byte al puntatore tradotto in carattere ASCII.\n? Se il byte al puntatore è 0, salta avanti fino all'istruzione dopo il corrispondente comando ; o :.\n! Se il byte al puntatore non è 0, salta avanti fino all'istruzione dopo il corrispondente comando : o ;.\n; Se il byte al puntatore non è 0, salta indietro fino all'istruzione dopo il corrispondente comando ? o !.\n: Se il byte al puntatore è 0, salta indietro fino all'istruzione dopo il corrispondente comando ! o ?.\n\nNella cartella src trovate un esempio di Hello World in questo linguaggio.\n\nPer maggiori informazioni visitate la pagina:\nhttp://porkynator.altervista.org/SlackYou.html\no contattatemi al mio indirizzo e-mail:\nsebastiano@luganega.org", "SlackYou - informazioni", JOptionPane.INFORMATION_MESSAGE );
185 }
186 }
187 );
188 menuFile.add( esegui );
189 menuFile.add( salva );
190 menuFile.add( salvaConNome );
191 menuFile.add( apri );
192 menuFile.add( esci );
193 menuAiuto.add( info );
194 bar.add( menuFile );
195 bar.add( menuAiuto );
196 runButton = new JButton( "Esegui" );
197 runButton.addActionListener(
198 new ActionListener() {
199 public void actionPerformed( ActionEvent e ) {
200 main.run( textArea.getText() );
201 }
202 }
203 );
204 setLayout( new BorderLayout() );
205 setJMenuBar( bar );
206 add( new JScrollPane( textArea ), BorderLayout.CENTER );
207 add( runButton, BorderLayout.SOUTH );
208 }
209} \ No newline at end of file
diff --git a/SlackYouInterpreter/SlackYouInterpreter-1.1/src/HelloWorld.sky b/SlackYouInterpreter/SlackYouInterpreter-1.1/src/HelloWorld.sky
new file mode 100755
index 0000000..5a34281
--- /dev/null
+++ b/SlackYouInterpreter/SlackYouInterpreter-1.1/src/HelloWorld.sky
@@ -0,0 +1,12 @@
1QUESTO È UN ESEMPIO DI HELLO WORLD IN SLACKYOU
2=48w
3=65w
4=6cww
5...w
6=20w
7=57w
8=6fw
9...w
10,,,,,,w
11=64w
12=21w \ No newline at end of file
diff --git a/SlackYouInterpreter/SlackYouInterpreter-1.1/src/Main.java b/SlackYouInterpreter/SlackYouInterpreter-1.1/src/Main.java
new file mode 100755
index 0000000..879efc1
--- /dev/null
+++ b/SlackYouInterpreter/SlackYouInterpreter-1.1/src/Main.java
@@ -0,0 +1,325 @@
1/*
2Copyright 2009 Sebastiano Tronto <sebastiano@luganega.org>
3
4This file is part of SlackYouInterpreter.
5
6 SlackYouInterpreter is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 SlackYouInterpreter is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with SlackYouInterpreter; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
20*/
21
22import javax.swing.JFrame;
23import java.util.Scanner;
24public class Main {
25 public static Scanner scanner;
26 public static char totalCode[], charCodeAux[], charCode[], chars;
27 public static int i, j;
28 public static byte a[][];
29 public static void main( String args[] ) {
30 System.out.println("");
31 Frame frame = new Frame();
32 frame.setSize( 200, 300 );
33 frame.setVisible( true );
34 frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
35 }
36 public static void run( String code ) {
37 scanner = new Scanner( System.in );
38 a = new byte[1024][1024];
39 for ( int countX = 0; countX < a[0].length; countX++ )
40 for ( int countY = 0; countY < a.length; countY++ )
41 a[countX][countY] = 0;
42 chars = 'A';
43 int z = 0;
44 totalCode = code.toCharArray();
45 charCodeAux = new char[totalCode.length*2];
46 for ( int k = 0; k < totalCode.length; k++ ) {
47 switch ( totalCode[k] ) {
48 case '>':
49 case '<':
50 case '+':
51 case '-':
52 case '.':
53 case ',':
54 case '^':
55 case 'v':
56 case 'y':
57 case 'g':
58 case 'h':
59 case 'j':
60 case '*':
61 case '/':
62 case '%':
63 case '=':
64 case 'r':
65 case 'w':
66 case 'a':
67 case 'b':
68 case 'c':
69 case 'd':
70 case 'e':
71 case 'f':
72 case '0':
73 case '1':
74 case '2':
75 case '3':
76 case '4':
77 case '5':
78 case '6':
79 case '7':
80 case '8':
81 case '9':
82 charCodeAux[z] = totalCode[k];
83 z++;
84 break;
85 case '?':
86 case '!':
87 charCodeAux[z] = totalCode[k];
88 z++;
89 charCodeAux[z] = chars;
90 chars++;
91 z++;
92 break;
93 case ';':
94 case ':':
95 chars--;
96 charCodeAux[z] = chars;
97 z++;
98 charCodeAux[z] = totalCode[k];
99 z++;
100 break;
101 }
102 }
103 charCode = new char[z];
104 for ( int k = 0; k < charCode.length; k++ )
105 charCode[k] = charCodeAux[k];
106 i = 0;
107 j = 0;
108 execute( scanner, charCode, a, i, j, 0, charCode.length );
109 }
110 public static void execute( Scanner scanner, char charCode[], byte a[][], int i, int j, int start, int stop ) {
111
112 for (int count = start; count < stop; count++ ) {
113 switch ( charCode[count] ) {
114 case '>':
115 i++;
116 break;
117 case '<':
118 i--;
119 break;
120 case 'v':
121 j++;
122 break;
123 case '^':
124 j--;
125 break;
126 case '.':
127 a[j][i]++;
128 break;
129 case ',':
130 a[j][i]--;
131 break;
132 case 'y':
133 a[j-1][i] = a[j][i];
134 j--;
135 break;
136 case 'h':
137 a[j+1][i] = a[j][i];
138 j++;
139 break;
140 case 'g':
141 a[j][i-1] = a[j][i];
142 i--;
143 break;
144 case 'j':
145 a[j][i+1] = a[j][i];
146 i++;
147 break;
148 case '+':
149 a[j][i] += a[j][i+1];
150 break;
151 case '-':
152 a[j][i] -= a[j][i+1];
153 break;
154 case '*':
155 a[j][i] *= a[j][i+1];
156 break;
157 case '/':
158 a[j][i] /= a[j][i+1];
159 break;
160 case '%':
161 a[j][i] %= a[j][i+1];
162 break;
163 case 'w':
164 System.out.print( (char) a[j][i] );
165 break;
166 case 'r':
167 String stringa = scanner.nextLine();
168 char character[] = stringa.toCharArray();
169 switch ( character.length ) {
170 case 1:
171 a[j][i] = (byte) character[0];
172 break;
173 default:
174 count --;
175 break;
176 }
177 break;
178 case '=':
179 if ( (charCode[count+1] == '0' || charCode[count+1] == '1' || charCode[count+1] == '2' || charCode[count+1] == '3' ||
180 charCode[count+1] == '4' || charCode[count+1] == '5' || charCode[count+1] == '6' || charCode[count+1] == '7' ||
181 charCode[count+1] == '8' || charCode[count+1] == '9' || charCode[count+1] == 'a' || charCode[count+1] == 'b' ||
182 charCode[count+1] == 'c' || charCode[count+1] == 'd' || charCode[count+1] == 'e' || charCode[count+1] == 'f' ) &&
183 (charCode[count+2] == '0' || charCode[count+2] == '1' || charCode[count+2] == '2' || charCode[count+2] == '3' ||
184 charCode[count+2] == '4' || charCode[count+2] == '5' || charCode[count+2] == '6' || charCode[count+2] == '7' ||
185 charCode[count+2] == '8' || charCode[count+2] == '9' || charCode[count+2] == 'a' || charCode[count+2] == 'b' ||
186 charCode[count+2] == 'c' || charCode[count+2] == 'd' || charCode[count+2] == 'e' || charCode[count+2] == 'f' ) ) {
187 a[j][i] = 0;
188 switch ( charCode[count+1] ) {
189 case '0':
190 break;
191 case '1':
192 a[j][i] += 1 * 16;
193 break;
194 case '2':
195 a[j][i] += 2 * 16;
196 break;
197 case '3':
198 a[j][i] += 3 * 16;
199 break;
200 case '4':
201 a[j][i] += 4 * 16;
202 break;
203 case '5':
204 a[j][i] += 5 * 16;
205 break;
206 case '6':
207 a[j][i] += 6 * 16;
208 break;
209 case '7':
210 a[j][i] += 7 * 16;
211 break;
212 case '8':
213 a[j][i] += 8 * 16;
214 break;
215 case '9':
216 a[j][i] += 9 * 16;
217 break;
218 case 'a':
219 a[j][i] += 10 * 16;
220 break;
221 case 'b':
222 a[j][i] += 11 * 16;
223 break;
224 case 'c':
225 a[j][i] += 12 * 16;
226 break;
227 case 'd':
228 a[j][i] += 13 * 16;
229 break;
230 case 'e':
231 a[j][i] += 14 * 16;
232 break;
233 case 'f':
234 a[j][i] += 15 * 16;
235 break;
236 }
237 switch ( charCode[count+2] ) {
238 case '0':
239 break;
240 case '1':
241 a[j][i] += 1;
242 break;
243 case '2':
244 a[j][i] += 2;
245 break;
246 case '3':
247 a[j][i] += 3;
248 break;
249 case '4':
250 a[j][i] += 4;
251 break;
252 case '5':
253 a[j][i] += 5;
254 break;
255 case '6':
256 a[j][i] += 6;
257 break;
258 case '7':
259 a[j][i] += 7;
260 break;
261 case '8':
262 a[j][i] += 8;
263 break;
264 case '9':
265 a[j][i] += 9;
266 break;
267 case 'a':
268 a[j][i] += 10;
269 break;
270 case 'b':
271 a[j][i] += 11;
272 break;
273 case 'c':
274 a[j][i] += 12;
275 break;
276 case 'd':
277 a[j][i] += 13;
278 break;
279 case 'e':
280 a[j][i] += 14;
281 break;
282 case 'f':
283 a[j][i] += 15;
284 break;
285 }
286 }
287 break;
288 case '?':
289 if ( a[j][i] == 0 ) {
290 count++;
291 char key = charCode[count];
292 count++;
293 for ( ; charCode[count] != key; count++ ) ;
294 count++;
295 }
296 break;
297 case '!':
298 if ( a[j][i] != 0 ) {
299 count ++;
300 char key = charCode[count];
301 count ++;
302 for ( ; charCode[count] != key; count++ ) ;
303 count++;
304 }
305 break;
306 case ';':
307 if ( a[j][i] != 0 ) {
308 count --;
309 char key = charCode[count];
310 count --;
311 for ( ; charCode[count] != key; count-- ) ;
312 }
313 break;
314 case ':':
315 if ( a[j][i] == 0 ) {
316 count --;
317 char key = charCode[count];
318 count --;
319 for ( ; charCode[count] != key; count-- ) ;
320 }
321 break;
322 }
323 }
324 }
325} \ No newline at end of file
diff --git a/SlackYouInterpreter/SlackYouInterpreter.jar b/SlackYouInterpreter/SlackYouInterpreter.jar
new file mode 100755
index 0000000..fae131a
--- /dev/null
+++ b/SlackYouInterpreter/SlackYouInterpreter.jar
Binary files differ

Generated with cgit - Back to sebastiano.tronto.net