swmaestro06-apus / apus

apus program. it's a binary parser using programmable formats.
10 stars 1 forks source link

Jeongmin/vm/data type table v2 #78

Closed jeongmincha closed 9 years ago

jeongmincha commented 9 years ago

각 커밋에 대한 간략 설명

  1. 열거형 타입에 필요한 타입들 추가
  2. 열거형 타입을 쉽게 string으로 출력해주기 위해서 string 배열 추가 (예를 들어, U8을 쓸 때 "U8"로 사용할수 있게 만들어줄 요량으로 작성)
  3. 에러 메시지 루틴 추가 (ERROR_MSG 플래그가 true일 떄만 error msg를 출력)
  4. DataType 및 DataTypeTable 클래스 작성
  5. ArrayDataType 클래스 작성
  6. 위에서 작성한 클래스들에 대해 유닛 테스트 작성
jeongmincha commented 9 years ago

@namhyung 확인해주시고 부족한 점 있으면 알려주시기 바랍니다

namhyung commented 9 years ago

ToString() 메서드의 이름이 너무 일반적인 것 같은데, TypeToString() 정도로 하면 좋지 않을까요? 또 해당 함수가 C32까지만 받을 것이 아니라 (좀 더 일반적으로 사용되려면) 모든 타입에 대해서 동작하도록 하는 것이 더 좋아 보입니다.

또 테스트 코드 (특히 data_type_table_test)에서 단지 Find()로 NULL 여부 만 검사할 것이 아니라 찾은 데이터 타입이 정말 우리가 원하는 정보가 들어있는 것이 맞는지 확인하는 코드가 있었으면 합니다.

jeongmincha commented 9 years ago

@namhyung 다른 부분은 다 납득이 가는데.. primitive말고 굳이 string이 필요한 곳이 있을까요? primitive의 경우는 data type table에 자기 자신의 이름대로 들어가 있게 구현했습니다. (U8 같은 데이터 타입은 아예 이름 자체도 "U8"이라고 명시하여 data type table의 map에 추가가 됩니다.)

그 이유는 primtive type의 이름을 갖고 있는 변수나 데이터 타입을 만들수 없기 때문입니다. (어차피 "U8"이라고 하는 이름은 사용자가 명시하는 데이터 타입이나 변수에서는 사용이 불가능하므로, primitive data type의 이름 자체를 "U8"로 명시해두어도 문제가 발생하지 않는 것이죠.)

namhyung commented 9 years ago

ToString 메서드가 타입 테이블 이외의 용도로도 사용될 수 있지 않을까요?

2015년 8월 23일 (일) 오후 7:50, JeongMinCha notifications@github.com님이 작성:

@namhyung https://github.com/namhyung 다른 부분은 다 납득이 가는데.. 저는 C32까지만 primitive 라고 생각하여 그렇게 정한것입니다 primitive말고 굳이 string이 필요한 곳이 있을까요? primitive의 경운 data type table에 자기 자신의 이름대로 들어가 있게 구현했습니다. 그 이유는 primtive type의 이름을 갖고 있는 변수나 데이터타입은 존재하지 않기 때문이죠. (예를 들자면, U8이란 이름을 사용할 수 없기 때문에, "U8"이라는 이름으로 primitive data type이 data type table에 추가가 되어 있는 상태입니다. 이로써 특정 변수 이름은 사용할 수 없도록 하는 문제를 막고자 하였습니다.)

— Reply to this email directly or view it on GitHub https://github.com/swmaestro06-apus/apus/pull/78#issuecomment-133816916.

namhyung commented 9 years ago

v3 merged at #85