이 파일은 nari 인터프리터 정말정말 초기 설계때의 소스 코드이다.




########################
# Nari 인터프리터 코어 #
########################

# strscan 참조
require 'strscan'
# values 세팅
values = {}
# 루프
loop do
  # 입력 받는다
  line = gets or break
  # scanner 생성
  scanner = StringScanner.new(line.chomp)
  # 다음 파이프를 통과하지 않으면..?
  scanner.scan(/(put2|set)\s+/) or fail "Missing command"
  # cmd 세팅
  cmd = scanner[1]
  # 값 파이프..
  var_name = scanner.scan(/\w+/) or fail "Missing variable"
  # cmd 를 케이스 조건으로..
  case cmd
  # put2 함수
  when "put2" 
    puts "#{var_name} => #{values[var_name].inspect}"
  # set 함수
  when "set"
    scanner.skip(/\s+=\s+/) or fail "Missing '='"
    value = scanner.rest
    values[var_name] = value
  # 만약 위 것들에 해당하지 않으면?
  else
    #뷁귉 에러
    fail cmd
  # 케이스문을 닫음
  end
# 루프문을 닫음 그리고 바이바이~
end
