前提: Syntax很簡單,不用look ahead,而且都會知道要讀多少byte(沒有那種「讀到0x00為止」)
我的作法看起來長這樣:
const msgParser = expect([10, 10, 20], (datetime, messageType, messageID) => {
switch (messageType) {
case "HI":
expect([10, 10], (senderID, senderName) => {
// connect