{"push_id":759113188,"size":4,"distinct_size":1,"ref":"refs/heads/master","head":"956cc6a9886e84b3cb45eefa81ef80382b3864dd","before":"bb25aa17939f333dd69c922710c44ffa77edb011","commits":[{"sha":"fbd253bb0c7244934b9ac4dc3c09b3d0cebd4e62","author":{"email":"7da94638fd396faddbd6a29ba9fe6288254cc465@gmail.com","name":"ChanWoo Jeong"},"message":"VM: Added Simple VM, Context classes\n\n간단 VM 구현체와 Context 객체를 추가했습니다. 앞으로 스크립트를 해석하고 난 결과물을 VM (스크립트 로직) 과 Context (사용자가 선언한 데이터 타입) 가 받아, 실행시킬 것입니다.","distinct":false,"url":"https://api.github.com/repos/swmaestro06-apus/apus/commits/fbd253bb0c7244934b9ac4dc3c09b3d0cebd4e62"},{"sha":"d0659666501ec31e06d96b13870aa8a3ebdf43ed","author":{"email":"7da94638fd396faddbd6a29ba9fe6288254cc465@gmail.com","name":"ChanWoo Jeong"},"message":"VM: Added Statement classes.\n\n우선, src 폴더 아래에 ast (abstract syntax tree) 폴더를 만들고, 그 하위에 추상클래스 Statement를 정의했음. 이 Statement안에는 순수 가상함수로 Execute()라는 멤버 함수가 있어서, 모든 자식들은 각자의 목적에 맞게 이 함수의 본체를 정의해야함.\n\nStatement의 자식들로 일단, ForStatement, IfStatement, Block을 정의함. VM은 최종적으로 이들의 리스트를 입력으로 받게 될 것임.\n\nEvaluate함수 이외에는 아무것도 없는 간단한 Expression 클래스 추가.\n\nBreakStatement, ContinueStatement 안에서 상위 ForStatement에 대한 레퍼런스를 가지는게 꽤나 어려운 작업이 될 것이라고 예상했기 때문에, 아래와 같이 구현했습니다.\n\nbreak, continue와 같은 jump statement의 execute()에서는 context안에 있는 break, continue 플래그를 true로 세팅만 합니다. 그 jump statement 를 포함 하고 있는 block, ForStatement에서 반복문을 통해 로직을 실행시키다가, 플래그가 true로 세팅되면 해당하는 플래그에 대한 로직을 수행합니다.","distinct":false,"url":"https://api.github.com/repos/swmaestro06-apus/apus/commits/d0659666501ec31e06d96b13870aa8a3ebdf43ed"},{"sha":"d87964d1d166bad75ffe09f79cfd2e89ba661819","author":{"email":"7da94638fd396faddbd6a29ba9fe6288254cc465@gmail.com","name":"ChanWoo Jeong"},"message":"VM: expression: Added Expression classes.\n\nExpression은 순수가상함수로 Evaluate함수를 가지고 있습니다. 자식들인 BinaryExpression, UnaryExpression들은 이 함수를 각각 이항연산, 단항 연산을 하는데 사용합니다. Expression 객체가 어떤 연산을 할지는 생성자로 전달해준 Type 인자가 결정합니다. 예를들어 EXP_ADD를 타입으로 넘겨줬다면 덧셈연산, EXP_DIV를 타입으로 넘겨줬다면 나눗셈 연산을 수행합니다. 그리고 앞으로 구현될 간단한 Value 클래스를 추가했습니다. (현재 Expression의 멤버로 사용됨)\n\n추가로, ValueExpression(단순 값 반환), VariableExpression(변수 값 반환), AssignExpression(할당), MemberExpression(변수의 멤버 접근) 을 추가 했습니다.","distinct":false,"url":"https://api.github.com/repos/swmaestro06-apus/apus/commits/d87964d1d166bad75ffe09f79cfd2e89ba661819"},{"sha":"956cc6a9886e84b3cb45eefa81ef80382b3864dd","author":{"email":"5c915a589b3ddf58cebf14bec41bcc143b37ac3c@gmail.com","name":"Namhyung Kim"},"message":"Merge pull request #47 from swmaestro06-apus/chanwoo/virtual_machine-v6\n\nVM 동작을 위한 기본 클래스 생성 - VM, Context, Statement, Expression","distinct":true,"url":"https://api.github.com/repos/swmaestro06-apus/apus/commits/956cc6a9886e84b3cb45eefa81ef80382b3864dd"}]}