var interpret=i=>{
	var stack=[],//stack
		//I/O functions
		_=i=>[i=prompt`Input:`,stack.push(i)][0]//input
		$=i=>alert(i!=[]._?i:stack),//output
			
		//stack functions
		p=i=>stack.push(i),//push to stack
		g=i=>i!=[]._?stack[i<0?stack.length+i:i]:stack[stack.length-1],//get item from stack
		s=i=>stack.splice(i!=[]._?i:g()),//splice item from stack
		c=i=>stack=[],//clear stack
			
		//extra math stuff
		P=(i='g()¢2',j)=>[i=i.split`¢`,j=Math.pow(i[0]!=[]._?eval(i[0]):g(),i[1]!=[]._?eval(i[1]):2),p(j)][1],//number^exponent
		R=(i='0¢1',j,x,y)=>[i=i.split`¢`,j=0|Math.random()*(i[1]-i[0]+1)+i[0],p(j)][1],//random
			
		//other functions and builtins
		i=i=>(i=i.split`¢`,eval(`if(${i[0]}){${i[1]}}else{${i[2]}}`)),//if/else conditional statements
		l=i=>(i=i.split`¢`,eval(`for(${i[0]}){${i[1]}}`)),//loop
		S=i=>[i=i!=[]._?document.getElementById('c').value[i]:document.getElementById('c').value,stack.push(i)][0],//get source code (chars)
		e=eval,
		m=Math,
		r=(i,j)=>(p(j=[...i].reverse().join``),j),
		
		//syntax from esmin to es6
		i=document.getElementById('c').value
			.replace(/([^\\])@/g,'$1()')
			.replace(/~>/g,'=()=>')
			.replace(/([_$a-zA-Z]*)“(.*?)”?$/g,'$1(`$2`)')
			.replace(/([_$a-zA-Z]*)«(.*?)»?$/g,'$1(`$2`)')
			.replace(/([_$a-zA-Z]*)‘(.*?)’?$/g,'$1($2)')
			.replace(/([_$a-zA-Z]*)≤(.*?)≥?$/g,'$1($2)')
			.replace(/([_$a-zA-Z]*)\((.*?)\)?$/g,'$1($2)')
			.replace(/([_$a-zA-Z]*)\[(.*?)\]?$/g,'$1[$2]')
			.replace(/([_$a-zA-Z]*){(.*?)}?$/g,'$1{$2}')
			.replace(/([^\\])∞/g,'Infinity')
	if(!i.match(/\$[^{]/g))i+=';$()';
	e(i);
}
@@ -319,19 +319,30 @@
 =%5B%5D._?i:
-g()
+stack.length-1
 ),//spli
@@ -1169,39 +1169,55 @@
 (/(%5B
-_$a-zA-Z%5D*)%E2%80%9C(.*?)%E2%80%9D?$/g,'$1(%60$2%60
+pgs$%5D)(-?%5Cd+(?:%5C.%5Cd*)?(?:e%5B+%5C-%5D?%5Cd+)?)/g,'$1($2
 )')%0A
@@ -1246,15 +1246,15 @@
 Z%5D*)
-%C2%AB
+%E2%80%9C
 (.*?)
-%C2%BB
+%E2%80%9D
 ?$/g
@@ -1333,94 +1333,35 @@
 (/(%5B
-_$a-zA-Z%5D*)%E2%89%A4(.*?)%E2%89%A5?$/g,'$1($2)')%0A%09%09%09.replace(/(%5B_$a-zA-Z%5D*)%5C((.*?)%5C)?$/g,'$1($2)
+%5E%5C%5C%5D)%E2%88%9E/g,'$1Infinity
 ')%0A%09%09
-%09
+  
 .rep
@@ -1370,126 +1370,16 @@
 ce(/
-(%5B_$a-zA-Z%5D*)%5C%5B(.*?)%5C%5D?$/g,'$1%5B$2%5D')%0A%09%09%09.replace(/(%5B_$a-zA-Z%5D*)%7B(.*?)%7D?$/g,'$1%7B$2%7D')%0A%09%09%09.replace(/(%5B%5E%5C%5C%5D)%E2%88%9E/g,'Infinity
+%E2%80%A6/g,'...
 ')%0A%09

add more syntax, fix splice