122 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| function Command(content)
 | |
| {
 | |
|   this.content = content;
 | |
| 
 | |
|   this.inject_position = function(injection)
 | |
|   {
 | |
|     console.log("> "+injection);
 | |
|     console.log("- "+content);
 | |
|   }
 | |
|   
 | |
|   // Parser
 | |
|   
 | |
|   this.any = function()
 | |
|   {
 | |
|     if(this.content.join() === ""){ return null; }
 | |
|     return new Any(this.content);
 | |
|   }
 | |
|   
 | |
|   this.rect = function()
 | |
|   {
 | |
|     for (i = 0; i < this.content.length; i++) {
 | |
|       if(this.content[i].indexOf("x") >= 0 && this.content[i].indexOf("/") < 0){ return new Rect(this.content[i]); }
 | |
|     }
 | |
|     return null;
 | |
|   }
 | |
|   
 | |
|   this.position = function()
 | |
|   {
 | |
|     for (i = 0; i < this.content.length; i++) {
 | |
|       if(this.content[i].indexOf(",") >= 0){ return new Position(this.content[i]); }
 | |
|     }
 | |
|     return null;
 | |
|   }
 | |
|   
 | |
|   this.color = function()
 | |
|   {
 | |
|     for (i = 0; i < this.content.length; i++) {
 | |
|       if(this.content[i].indexOf("#") >= 0){ return new Color(this.content[i]); }
 | |
|     }
 | |
|     return null;
 | |
|   }
 | |
|   
 | |
|   this.filepath = function()
 | |
|   {
 | |
|     for (i = 0; i < this.content.length; i++) {
 | |
|       if(this.content[i].indexOf("/") >= 0){ return new Filepath(this.content[i]); }
 | |
|     }
 | |
|     return null;
 | |
|   }
 | |
|   
 | |
|   this.value = function()
 | |
|   {
 | |
|     for (i = 0; i < this.content.length; i++) {
 | |
|       var test = /[^$\-\d]/.test(this.content[i]);
 | |
|       if(!test && this.content[i] !== ""){ return new Value(this.content[i]); }
 | |
|     }
 | |
|     return null;
 | |
|   }
 | |
|   
 | |
|   this.range = function()
 | |
|   {
 | |
|     for (i = 0; i < this.content.length; i++) {
 | |
|       if(this.content[i].indexOf("..") >= 0){ return new Range(this.content[i]); }
 | |
|     }
 | |
|     return null;
 | |
|   }
 | |
|   
 | |
|   this.bang = function()
 | |
|   {
 | |
|     for (i = 0; i < this.content.length; i++) {
 | |
|       if(this.content[i].indexOf("!") >= 0){ return new Bang(); }
 | |
|     }
 | |
|     return null;
 | |
|   }
 | |
|   
 | |
|   this.angle = function()
 | |
|   {
 | |
|     for (i = 0; i < this.content.length; i++) {
 | |
|       if(this.content[i].indexOf("'") >= 0){ return new Angle(this.content[i]); }
 | |
|     }
 | |
|     return null;
 | |
|   }
 | |
|   
 | |
|   this.setting = function(name)
 | |
|   {
 | |
|     for (i = 0; i < this.content.length; i++) {
 | |
|       if(this.content[i].indexOf("=") >= 0){
 | |
|         var parts = this.content[i].split("=");
 | |
|         if(parts[0] == name){
 | |
|           return new Setting(parts[0],parts[1]);
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|     return null;
 | |
|   }
 | |
| 
 | |
|   this.text = function()
 | |
|   {
 | |
|     var content_str = this.content.join(" ");
 | |
|     if(content_str.indexOf("\"") < 0){ return null; }
 | |
|     return content_str.split("\"")[1];
 | |
|   }
 | |
| 
 | |
|   this.methods = function()
 | |
|   {
 | |
|     var a = [];
 | |
|     for(i in this.content){
 | |
|       if(this.content[i].indexOf(":") > 0){
 | |
|         a.push(this.content[i]);
 | |
|       }
 | |
|     }
 | |
|     return a;
 | |
|   }
 | |
| 
 | |
|   this.method = function(name)
 | |
|   {
 | |
|     for(i in this.methods()){
 | |
|       var m = new Method(this.methods()[i]);
 | |
|       if(m.name == name){ return m; }
 | |
|     }
 | |
|   }
 | |
| } |