jweinst1
8/31/2017 - 8:09 PM

finite state parsing done in javascript

finite state parsing done in javascript

//finite state parser in javascript

function parseAtDefine() {
  this.chars = "@define".split("");
  this.final = false;
  this.state = 0;
}

parseAtDefine.prototype.acceptToken = function(token) {
  if(this.final) return "done";
  else if(this.chars[this.state] == token) {
    if((++this.state) == this.chars.length) this.final = true;
    return "progress to next state";
  }
  else return "bad token";
};

/*
=> [Function]
   var g = new parseAtDefine();
=> undefined
   g.acceptToken('@');
=> 'progress to next state'
   g.acceptToken('d');
=> 'progress to next state'
   g.acceptToken('e');
=> 'progress to next state'
   g.acceptToken('f');
=> 'progress to next state'
   g.acceptToken('i');
=> 'progress to next state'
   g.acceptToken('n');
=> 'progress to next state'
   g.acceptToken('e');
=> 'progress to next state'
   g.acceptToken('n');
=> 'done'*/