mirror of
https://github.com/captn3m0/nand2tetris.git
synced 2024-09-20 15:56:58 +00:00
Remove unused variables, style fixes
This commit is contained in:
parent
09bf3f1e67
commit
26f427a8ad
@ -5,31 +5,29 @@ fn = ARGV[0]
|
||||
# Not implemented yet
|
||||
class SymbolTable
|
||||
def initialize
|
||||
@st = {:SP => 0,
|
||||
:LCL => 1,
|
||||
:ARG => 2,
|
||||
:THIS => 3,
|
||||
:THAT => 4,
|
||||
:R0 => 0,
|
||||
:R1 => 1,
|
||||
:R2 => 2,
|
||||
:R3 => 3,
|
||||
:R4 => 4,
|
||||
:R5 => 5,
|
||||
:R6 => 6,
|
||||
:R7 => 7,
|
||||
:R8 => 8,
|
||||
:R9 => 9,
|
||||
:R10 => 10,
|
||||
:R11 => 11,
|
||||
:R12 => 12,
|
||||
:R13 => 13,
|
||||
:R14 => 14,
|
||||
:R15 => 15,
|
||||
:SCREEN => 16384,
|
||||
:KBD => 24576
|
||||
}
|
||||
|
||||
@st = { SP: 0,
|
||||
LCL: 1,
|
||||
ARG: 2,
|
||||
THIS: 3,
|
||||
THAT: 4,
|
||||
R0: 0,
|
||||
R1: 1,
|
||||
R2: 2,
|
||||
R3: 3,
|
||||
R4: 4,
|
||||
R5: 5,
|
||||
R6: 6,
|
||||
R7: 7,
|
||||
R8: 8,
|
||||
R9: 9,
|
||||
R10: 10,
|
||||
R11: 11,
|
||||
R12: 12,
|
||||
R13: 13,
|
||||
R14: 14,
|
||||
R15: 15,
|
||||
SCREEN: 16_384,
|
||||
KBD: 24_576 }
|
||||
end
|
||||
|
||||
def add(symb, address)
|
||||
@ -37,7 +35,7 @@ class SymbolTable
|
||||
end
|
||||
|
||||
def has?(symb)
|
||||
@st.has_key? symb.to_sym
|
||||
@st.key? symb.to_sym
|
||||
end
|
||||
|
||||
def get(symb)
|
||||
@ -47,25 +45,25 @@ end
|
||||
|
||||
class Code
|
||||
DEST_MAP = {
|
||||
nil => "000",
|
||||
'M' => "001",
|
||||
'D' => "010",
|
||||
'MD' => "011",
|
||||
'A' => "100",
|
||||
'AM' => "101",
|
||||
'AD' => "110",
|
||||
'AMD' => "111"
|
||||
nil => '000',
|
||||
'M' => '001',
|
||||
'D' => '010',
|
||||
'MD' => '011',
|
||||
'A' => '100',
|
||||
'AM' => '101',
|
||||
'AD' => '110',
|
||||
'AMD' => '111'
|
||||
}.freeze
|
||||
|
||||
JUMP_MAP = {
|
||||
nil => "000",
|
||||
'JGT' => "001",
|
||||
'JEQ' => "010",
|
||||
'JGE' => "011",
|
||||
'JLT' => "100",
|
||||
'JNE' => "101",
|
||||
'JLE' => "110",
|
||||
'JMP' => "111"
|
||||
nil => '000',
|
||||
'JGT' => '001',
|
||||
'JEQ' => '010',
|
||||
'JGE' => '011',
|
||||
'JLT' => '100',
|
||||
'JNE' => '101',
|
||||
'JLE' => '110',
|
||||
'JMP' => '111'
|
||||
}.freeze
|
||||
COMP_MAP = {
|
||||
'0' => '101010',
|
||||
@ -97,10 +95,8 @@ class Code
|
||||
|
||||
def self.comp(str)
|
||||
str.strip!
|
||||
a = c1 = c2 = c3 = c4 = c5 = c6 = 0
|
||||
a = str.include? 'M'
|
||||
key = str.gsub(/[AM]/, 'Y')
|
||||
(a ? '1' : '0') + COMP_MAP[key]
|
||||
(str.include?('M') ? '1' : '0') + COMP_MAP[key]
|
||||
end
|
||||
end
|
||||
|
||||
@ -139,6 +135,7 @@ class Parser
|
||||
|
||||
def dest
|
||||
return nil unless line.include? '='
|
||||
|
||||
line.split('=').first
|
||||
end
|
||||
|
||||
@ -156,6 +153,7 @@ class Parser
|
||||
|
||||
def jump
|
||||
return nil unless line.include? ';'
|
||||
|
||||
line.split(';').last
|
||||
end
|
||||
|
||||
@ -243,7 +241,7 @@ class Assembler
|
||||
else
|
||||
val = symbol.to_i
|
||||
end
|
||||
@res << val.to_i.to_s(2).rjust(16, "0")
|
||||
@res << val.to_i.to_s(2).rjust(16, '0')
|
||||
when :C_COMMAND
|
||||
dest, comp, jump = command[1]
|
||||
@res << "111#{Code.comp(comp)}#{Code.dest(dest)}#{Code.jump(jump)}"
|
||||
|
@ -6,10 +6,7 @@ diff ../projects/06/max/MaxL.hack <(ruby assembler.rb ../projects/06/max/MaxL.as
|
||||
diff ../projects/06/rect/RectL.hack <(ruby assembler.rb ../projects/06/rect/RectL.asm)
|
||||
diff ../projects/06/pong/PongL.hack <(ruby assembler.rb ../projects/06/pong/PongL.asm)
|
||||
|
||||
|
||||
|
||||
# Programs with symbols
|
||||
diff ../projects/06/max/Max.hack <(ruby assembler.rb ../projects/06/max/Max.asm)
|
||||
diff ../projects/06/rect/Rect.hack <(ruby assembler.rb ../projects/06/rect/Rect.asm)
|
||||
diff ../projects/06/pong/Pong.hack <(ruby assembler.rb ../projects/06/pong/Pong.asm)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user