Skip to content

teihong93/tei-script

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Teiscript

타입스크립트로 만드는 인터프리터 언어


원본 도서

  • 밑바닥부터 만드는 인터프리터 in Go

Intro

  • go 언어로 쓰인 인터프리터 책을 읽고 타입스크립트로 포팅해보는 프로젝트입니다.
  • 인터프리터에 관심 있고, go 보다는 타입스크립트에 더 익숙한 사람들을 위한 학습 자료를 만들고싶어 시작했습니다.
  • 언어적 차이가 있고, go 언어에 능숙하지 않아 책과 다르게 작성된 부분들이 존재합니다.
  • 자바스크립트는 왜 그모양일까? 에서 영감을 받아, 클래스 없는 타입스크립트 방법으로 작성해보았습니다.
    • this 를 한번도 사용하지 않을 수 있다는 장점이 있었습니다.
    • 모든 함수를 팩토리처럼 사용하게 되는데, typescript 에서 내부 state 를 다루는데 불편함이 있었습니다.
    • 함수의 리턴값을 인스턴스의 타입으로 생각하면서 작성했습니다.
    • 작성하면서 느낀점은, typescript 에서는 그냥 class 문법으로 사용하는게 더 편한것 같습니다.(해당 방법을 유지하면서 더 좋은 구조가 없는지 고민중입니다)

디렉토리 순서 ( 프로젝트 진행률 102/345 )

  • token (step1)
  • lexer (step2)
  • repl (step3)
  • parser (step4)
  • 작업중 ...
  • types
  • util

시작해보기

  • yarn test 명령어를 통해 실행되는 테스트에 숫자가 적혀있습니다(ex-> 토큰테스트(1))
  • 해당 숫자는 코드가 구현된 순서를 나타냅니다.
  • 작은 숫자부터 큰 숫자로 따라가면서 테스트를 실행해보고, 코드를 이해할 수 있도록 작성했습니다.

기여

  • 수정하거나 더 나은 방식이 있다면 언제나 pr 날려주세요.
  • 수정한 부분이 있다면 테스트 코드 또한 작성해주세요.

About

ts로 만든 인터프리터 언어

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published