a2fb0b9ae5
	 
				 
					 
					
						
						
							
							Get rid of 'parent' constant. Use variable instead.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-08 08:38:40 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						07bd3ceec3
	 
				 
					 
					
						
						
							
							Reimplement 'parent' construct as variable $parent.  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						This commit also adds new controls to variables, which prevents from re-assigning a value when set. Thanks to that, both $this and $parent cannot be overwritten by using OP_STORE instruction. Other instructions still need some
work. 
						
						
					 
					
						2019-05-08 08:26:48 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0c8ca53f70
	 
				 
					 
					
						
						
							
							Continuous numeration.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-07 09:24:43 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						03c37c58bb
	 
				 
					 
					
						
						
							
							Add constants test.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-07 08:42:42 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						17e0fb4653
	 
				 
					 
					
						
						
							
							Do not try to resolve constants when OP_MEMBER is next instruction on the stack.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-06 18:42:06 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d3ae1c1bf4
	 
				 
					 
					
						
						
							
							Only identifiers should be allowed as constant name.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-06 18:38:56 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						cedc288f67
	 
				 
					 
					
						
						
							
							Remove static constant.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-06 11:42:19 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						0a6b5a6f42
	 
				 
					 
					
						
						
							
							The 'self' and 'parent' keywords should be resolved at compile time.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-06 11:38:32 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7b6245572f
	 
				 
					 
					
						
						
							
							Remove constants management builtin functions.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-06 06:54:29 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9d84c558c4
	 
				 
					 
					
						
						
							
							New test for goto statement.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-06 06:39:36 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						c4b63a3018
	 
				 
					 
					
						
						
							
							Rename OP_LOAD instruction to OP_LOADV.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-05 09:33:06 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						23900f2aed
	 
				 
					 
					
						
						
							
							Remove unused compiler function - PH7_CompileLangConstruct().  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						In AerScript, there are no such language constructs, that have syntax similiar to functions. If so, it is just a builtin function. 
						
						
					 
					
						2019-05-04 18:53:11 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						b36510943d
	 
				 
					 
					
						
						
							
							Implement 'define' statement for defining constants globally.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-04 17:08:09 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						ab8bf48485
	 
				 
					 
					
						
						
							
							Make constant declarations local.  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						There are several changes in this commit:
 * first of all constants declared by 'const' statement should be local (declared in current scope / frame),
 * constants are declared by using OP_DECLARE instruction,
 * OP_LOADC browses both global and local constants container,
 * PH7_VmRegisterConstant() allows both global and local declarations.
Since this commit, there are 3 kinds of constants:
 1) global
 2) local (in loop, closure, method)
 3) class members.
Actually there is no way to declare a global constant except the built-in constants. 
						
						
					 
					
						2019-05-04 13:45:32 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						90b2da7c56
	 
				 
					 
					
						
						
							
							Unify constant length.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-03 12:40:47 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						e6b7f1be2c
	 
				 
					 
					
						
						
							
							Always emit OP_JMPLFE as goto can be used inside a loop and frame has to be left.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-03 10:55:57 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						03fc167be1
	 
				 
					 
					
						
						
							
							Proper implementation of so hated 'goto' statement.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-03 10:35:54 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						2f3ce65289
	 
				 
					 
					
						
						
							
							Correct comment to if/else statements.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-02 19:03:47 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						73c1a814f5
	 
				 
					 
					
						
						
							
							Test foreach() loop.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-02 18:51:12 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8f681d1605
	 
				 
					 
					
						
						
							
							Correct PH7_OP_JMPLFE debug name.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 20:24:37 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						5a0e4667fa
	 
				 
					 
					
						
						
							
							More readable error message.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 20:09:55 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						508e8965a9
	 
				 
					 
					
						
						
							
							VmExtractMemObj() should not be able to create a variable.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 18:29:57 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7d606cbf1d
	 
				 
					 
					
						
						
							
							Do not create variables automatically on each OP_CALL using VmExtractMemObj().  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 18:19:04 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						3dfa4232ba
	 
				 
					 
					
						
						
							
							Use VmCreateMemObj() to create $this.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 14:00:35 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						7c37451520
	 
				 
					 
					
						
						
							
							Namespaces are not supported and broken, but compile them properly.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 13:49:07 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1829eff323
	 
				 
					 
					
						
						
							
							Fix interface and class compilation.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 13:37:14 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						798fd7d3b2
	 
				 
					 
					
						
						
							
							Remove unused and useless VM instruction.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 12:33:51 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						70676cb0d5
	 
				 
					 
					
						
						
							
							Correct comment.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 12:27:40 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d76441ad4c
	 
				 
					 
					
						
						
							
							Safely store only compatible values.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 12:24:20 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						186e5887f6
	 
				 
					 
					
						
						
							
							We can now declare key and value variables inside a loop.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 11:51:08 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						bbcd99789d
	 
				 
					 
					
						
						
							
							Fix test.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 11:48:57 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1d6822c1e2
	 
				 
					 
					
						
						
							
							Allow key and value declaration inside foreach() loop.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 11:38:28 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						a726ab795a
	 
				 
					 
					
						
						
							
							Throw an error if $key or $value does not exist.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-05-01 09:51:33 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						5c1e0f0cce
	 
				 
					 
					
						
						
							
							Simplify the foreach() loop implementation.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-30 23:59:02 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						4d8d92092e
	 
				 
					 
					
						
						
							
							Refactor foreach() loop.  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						In AerScript, the foreach() loop is syntatically more similiar to C#, than PHP. However the optional '$key => $value' construct is still available, because arrays in AerScript are still a hashmaps. 
						
						
					 
					
						2019-04-30 23:38:59 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						1156519af6
	 
				 
					 
					
						
						
							
							This is a compiler task to fill key and value variables names.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-29 11:44:17 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						62c315da9e
	 
				 
					 
					
						
						
							
							Call to undefined constant should lead to an error.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-28 21:44:48 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						10516fb655
	 
				 
					 
					
						
						
							
							Remove useless comments from BrainFuck tests.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-28 19:51:38 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						f09d4def2d
	 
				 
					 
					
						
						
							
							It's AerScript.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-28 19:47:09 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d6fca929ea
	 
				 
					 
					
						
						
							
							Callbacks can be just called.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-28 19:36:27 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						6593252bce
	 
				 
					 
					
						
						
							
							Remove get_defined_functions() built-in function.  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						This function is useless in Aer, as it is fully OOP language and thus disallows functions declaration. 
						
						
					 
					
						2019-04-28 19:31:58 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d26bc99b68
	 
				 
					 
					
						
						
							
							There is no reason to trigger a low-level error in AerScript.  
						
						 
						
						... 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						AerScript is fully OOP language and supports exceptions that can be thrown at any time. 
						
						
					 
					
						2019-04-28 19:27:24 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						00c502c11b
	 
				 
					 
					
						
						
							
							Get rid of import_request_variables() builtin function. Its pure evil.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-28 19:23:42 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						9f4f6298c2
	 
				 
					 
					
						
						
							
							Do not create variable in foreach() loop automatically.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-28 19:14:56 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						2bda002259
	 
				 
					 
					
						
						
							
							Add missing variables declaration.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-28 19:14:25 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						eef5ee370d
	 
				 
					 
					
						
						
							
							Remove this useless wrapper function.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-28 18:25:43 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						8ab3919688
	 
				 
					 
					
						
						
							
							Class names should be case sensitive.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-28 18:24:22 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						58015f2a20
	 
				 
					 
					
						
						
							
							Correct typo.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-28 18:18:03 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						d72774f0f4
	 
				 
					 
					
						
						
							
							Namespaces in AerScript do not support aliases.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-25 23:31:48 +02:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
					 
					
						
						
							
						
						407fb09e8f
	 
				 
					 
					
						
						
							
							Throw an error only if this is not the end of tokens stream.  
						
						 
						
						
	
		
			
	 
		 
	
	
		
	
	
		
			
				
	 
				 The build was successful. 
				
			 
		
		
	 
 
	 
						
						
					 
					
						2019-04-25 19:24:53 +02:00