Skip to content

Instantly share code, notes, and snippets.

@learnopengles
learnopengles / JackCompiler.rs
Created April 7, 2018 15:31
Jack Compiler for nand2tetris project 11 -- written in Rust.
// Jack Compiler for nand2tetris project 11 -- written in Rust.
// License: CC BY-SA 4.0 -- https://creativecommons.org/licenses/by-sa/4.0/
use std::collections::HashMap;
use std::env;
use std::fs::File;
use std::io;
use std::io::{BufRead, BufReader, BufWriter, Read, Write};
use std::iter::Peekable;
use std::path::Path;
@learnopengles
learnopengles / JackAnalyzer.rs
Created March 28, 2018 22:59
Jack Analyzer for nand2tetris project 10 -- written in Rust.
// Jack Analyzer for nand2tetris project 10 -- written in Rust.
// License: CC BY-SA 4.0 -- https://creativecommons.org/licenses/by-sa/4.0/
use std::env;
use std::fs::File;
use std::io;
use std::io::{BufRead, BufReader, BufWriter, Read, Write};
use std::iter::Peekable;
use std::path::Path;
use std::str::Chars;
@learnopengles
learnopengles / main.rs
Created March 16, 2018 15:54
VM Translator for nand2tetris project 8 -- written in Rust
// VM Translator for nand2tetris project 8 -- written in Rust by Kevin Brothaler.
// CC BY-SA 4.0 -- https://creativecommons.org/licenses/by-sa/4.0/
use std::env;
use std::fs::File;
use std::io;
use std::io::{BufRead, BufReader, BufWriter, Read, Write};
use std::path::Path;
fn main() {
let args: Vec<String> = env::args().collect();
@learnopengles
learnopengles / BasicTest.asm
Last active March 15, 2018 02:29
VM Translator for nand2tetris project 7 -- written in Rust.
// Example output for VM Translator for nand2tetris project 7 -- written in Rust.
// CC BY-SA 4.0 -- https://creativecommons.org/licenses/by-sa/4.0/
// Initialize stack pointer
@256
D=A
@SP
M=D
// Push 10 onto the stack
@learnopengles
learnopengles / gist:60c945b92fbe60a0fecaa0143c35c4af
Last active January 15, 2017 18:26
Compile Rust tests with cargo for the iOS simulator
Prerequisites:
- rustup target install x86_64-apple-ios
Steps:
DOCUMENTATION ON COMPILING FOR IOS SIMULATOR
1) Create a shim to the cross-compiling linker for the simulator:
@learnopengles
learnopengles / main.rs
Last active January 16, 2017 13:53
Assembler for nand2tetris project 6 written in Rust.
// Assember for nand2tetris project 6 written in Rust.
// CC BY-SA 4.0 -- https://creativecommons.org/licenses/by-sa/4.0/
use std::collections::HashMap;
use std::env;
use std::fs::File;
use std::io;
use std::io::{BufRead, BufReader, BufWriter, Read, Seek, SeekFrom, Write};
fn main() {
let args: Vec<String> = env::args().collect();
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include "dsp.h"
using namespace std;
static const int LENGTH = 524288;