jweinst1
5/27/2016 - 7:16 AM

switching automata in js

switching automata in js

//Implementation of FSA, via a linked node-like interface.

var FSA = (function(){
	function FSA(val){
		this.val = val;
		this.next = null;
	}
	FSA.prototype.setNext = function(val){
		this.next = new FSA(val);
	};
	//needs to be appended inside controlling object
	FSA.prototype.switchState = function(){
		if(this.next){
			return this.next;
		}
	};
	return FSA;
})();

//encapsulating object
var Machine = function(automatan){
	this.automatan = automatan;
	this.switch = function(){
		this.automatan = this.automatan.switchState();
	};
};
//automata switching back and forth
/*   var a = new FSA(8);
   a
=> { val: 8, next: null }
   a.setNext(4)
   a
=> { val: 8, next: { val: 4, next: null } }
   a.next.setNext(a)
   a
=> { val: 8, next: { val: 4, next: { val: [Circular], next: null } } }
   var c = new Machine(a)
   c
=> { automatan: { val: 8, next: { val: 4, next: [Object] } }, switch: [Function] }
   c.switch()
   c
=> { automatan: { val: 4, next: { val: [Object], next: null } }, switch: [Function] }
   c.switch()
   c
=> { automatan: { val: { val: 8, next: [Object] }, next: null }, switch: [Function] }*/