mirror of
				https://github.com/Reuh/anselme.git
				synced 2025-10-27 16:49:31 +00:00 
			
		
		
		
	Add default and named arguments, rename equality operator to ==, shortcut for string pairs
This commit is contained in:
		
							parent
							
								
									17751c5c59
								
							
						
					
					
						commit
						151c70ed26
					
				
					 28 changed files with 396 additions and 146 deletions
				
			
		|  | @ -53,7 +53,7 @@ functions = { | |||
| 				return right.return_type or true | ||||
| 			end, | ||||
| 			value = function(state, exp) | ||||
| 				local arg = exp.argument | ||||
| 				local arg = exp.argument.expression | ||||
| 				local name = arg.left.name | ||||
| 				local right, righte = eval(state, arg.right) | ||||
| 				if not right then return right, righte end | ||||
|  | @ -84,7 +84,7 @@ functions = { | |||
| 		{ rewrite = rewrite_assignement } | ||||
| 	}, | ||||
| 	-- comparaison | ||||
| 	["="] = { | ||||
| 	["=="] = { | ||||
| 		{ | ||||
| 			arity = 2, return_type = "number", mode = "raw", | ||||
| 			value = function(a, b) | ||||
|  | @ -193,7 +193,7 @@ functions = { | |||
| 		{ | ||||
| 			arity = 2, return_type = "number", mode = "custom", | ||||
| 			value = function(state, exp) | ||||
| 				local arg = exp.argument | ||||
| 				local arg = exp.argument.expression | ||||
| 				local left, lefte = eval(state, arg.left) | ||||
| 				if not left then return left, lefte end | ||||
| 				if truthy(left) then | ||||
|  | @ -217,7 +217,7 @@ functions = { | |||
| 		{ | ||||
| 			arity = 2, return_type = "number", mode = "custom", | ||||
| 			value = function(state, exp) | ||||
| 				local arg = exp.argument | ||||
| 				local arg = exp.argument.expression | ||||
| 				local left, lefte = eval(state, arg.left) | ||||
| 				if not left then return left, lefte end | ||||
| 				if truthy(left) then | ||||
|  | @ -254,6 +254,17 @@ functions = { | |||
| 			value = function(a, b) | ||||
| 				return a.value[b.value] or { type = "nil", value = nil } | ||||
| 			end | ||||
| 		}, | ||||
| 		{ | ||||
| 			arity = 2, types = { "list", "string" }, mode = "raw", | ||||
| 			value = function(a, b) | ||||
| 				for _,v in ipairs(a.value) do | ||||
| 					if v.type == "pair" and compare(v.value[1], b) then | ||||
| 						return v.value[2] | ||||
| 					end | ||||
| 				end | ||||
| 				return { type = "nil", value = nil } | ||||
| 			end | ||||
| 		} | ||||
| 	}, | ||||
| 	-- list methods | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue