mirror of
https://github.com/Open-Argon/Argon.git
synced 2026-10-28 09:43:38 +00:00
merge
This commit is contained in:
commit
a1b1b4e455
2 files changed
+74
-29
No files matched your search
@@ -1,4 +1,3 @@
|
||||
from os import extsep
|
||||
import re
|
||||
from typing import Any, Tuple
|
||||
import sys
|
||||
@@ -60,13 +59,13 @@ def number(value: Any):
|
||||
|
||||
def Atype(value):
|
||||
return {
|
||||
int: [number,"number"],
|
||||
float: [number,"number"],
|
||||
str: [valToArgonString,"string"],
|
||||
bool: [bool,"logic"],
|
||||
list: [list,"items"],
|
||||
tuple: [list,"items"],
|
||||
dict: [dict,"book"],
|
||||
int: "number",
|
||||
float: "number",
|
||||
str: "string",
|
||||
bool: "logic",
|
||||
list: "items",
|
||||
tuple: "items",
|
||||
dict: "book",
|
||||
}[type(value)]
|
||||
|
||||
def code_Aexec(string):
|
||||
@@ -76,6 +75,33 @@ def code_Aexec(string):
|
||||
def code_Aeval(string):
|
||||
return Aexec(string, True)[1]
|
||||
|
||||
def logSF(*args):
|
||||
newargs = []
|
||||
for i in range(len(args)):
|
||||
newargs.append(valToArgonString(args[i], speach=True, colour=False))
|
||||
print(*newargs, end='')
|
||||
def logSCF(*args):
|
||||
newargs = []
|
||||
for i in range(len(args)):
|
||||
newargs.append(valToArgonString(args[i], speach=True))
|
||||
print(*newargs, end='')
|
||||
def logS(*args):
|
||||
newargs = []
|
||||
for i in range(len(args)):
|
||||
newargs.append(valToArgonString(args[i], speach=True, colour=False))
|
||||
print(*newargs)
|
||||
def logSC(*args):
|
||||
newargs = []
|
||||
for i in range(len(args)):
|
||||
newargs.append(valToArgonString(args[i], speach=True))
|
||||
print(*newargs)
|
||||
|
||||
def logF(*args):
|
||||
newargs = []
|
||||
for i in range(len(args)):
|
||||
newargs.append(valToArgonString(args[i]))
|
||||
print(*newargs, end='')
|
||||
|
||||
def log(*args):
|
||||
newargs = []
|
||||
for i in range(len(args)):
|
||||
@@ -127,12 +153,21 @@ def Arange(start, stop=None, step=1):
|
||||
|
||||
vars = {
|
||||
'log': {'type': 'init', 'py': log},
|
||||
'logF': {'type': 'init', 'py': logF},
|
||||
'logS': {'type': 'init', 'py': logS},
|
||||
'logSC': {'type': 'init', 'py': logSC},
|
||||
'logSF': {'type': 'init', 'py': logSF},
|
||||
'logSCF': {'type': 'init', 'py': logSCF},
|
||||
'input': {'type': 'init', 'py': input},
|
||||
'PYeval': {'type': 'init', 'py': eval},
|
||||
'PYexec': {'type': 'init', 'py': exec},
|
||||
'abs': {'type': 'init', 'py': abs},
|
||||
'round': {'type': 'init', 'py': round},
|
||||
'length': {'type': 'init', 'py': len},
|
||||
'upper': {'type': 'init', 'py': lambda x: x.upper()},
|
||||
'lower': {'type': 'init', 'py': lambda x: x.lower()},
|
||||
'append': {'type': 'init', 'py': lambda list, value: list.append(value)},
|
||||
'insert': {'type': 'init', 'py': lambda list, to, value: list.insert(to,value)},
|
||||
'number': {'type': 'init', 'py': number},
|
||||
'char': {'type': 'init', 'py': chr},
|
||||
'ord': {'type': 'init', 'py': ord},
|
||||
@@ -195,6 +230,7 @@ vars = {
|
||||
'sqrt': {'type': 'init', 'py': math.sqrt},
|
||||
'ceil': {'type': 'init', 'py': math.ceil},
|
||||
'floor': {'type': 'init', 'py': math.floor},
|
||||
'round': {'type': 'init', 'py': round},
|
||||
'pow': {'type': 'init', 'py': math.pow},
|
||||
'hypot': {'type': 'init', 'py': math.hypot},
|
||||
'degrees': {'type': 'init', 'py': math.degrees},
|
||||
@@ -205,7 +241,7 @@ stringTextREGEX = r"( *)((((\')((\\([a-z\\\"\']))|[^\\\'])*(\'))|((\")((\\([a-z\
|
||||
numberTextREGEX = r"( *)(\-)?([0-9]*(\.[0-9]*)?(e[0-9]+)?)( *)"
|
||||
varNoSpace = r'([a-z]|[A-Z])([a-zA-Z0-9]*)((\[.*\])*)'
|
||||
varTextREGEX = fr"( *){varNoSpace}( *)"
|
||||
bookTextREGEX = r"( *)\{(( *).+( *):( *).+( *))(( *)\,( *).+( *):( *).+( *))*\}( *)"
|
||||
bookTextREGEX = r"( *)\{((( *).+( *):( *).+( *))(( *)\,( *).+( *):( *).+( *))*|)?\}( *)"
|
||||
bracketsTextREGEX = r"( *)\(.*\)( *)"
|
||||
commentTextREGEX = r'( *)\#(.*)( *)'
|
||||
functionTextREGEX = r"( *)(([a-z]|[A-Z])([a-zA-Z0-9]*))\(.*\)( *)"
|
||||
@@ -330,13 +366,13 @@ def math_exec(operator, value1, value2):
|
||||
return value1 >= value2
|
||||
elif operator == "<=":
|
||||
return value1 <= value2
|
||||
elif operator == " in ":
|
||||
elif operator == "@":
|
||||
return value1 in value2
|
||||
elif operator == " not in ":
|
||||
elif operator == "!@":
|
||||
return value1 not in value2
|
||||
elif operator == " or ":
|
||||
elif operator == "||":
|
||||
return value1 or value2
|
||||
elif operator == " and ":
|
||||
elif operator == "&&":
|
||||
return value1 and value2
|
||||
else:
|
||||
raise SyntaxError(f"invalid syntax")
|
||||
@@ -636,7 +672,7 @@ def Aexec(string, eval=False, vars=vars) -> Tuple[bool, str]: # Aexec stands for
|
||||
return Aexec(string[1:-1], eval, vars=vars)
|
||||
except SyntaxError:
|
||||
pass
|
||||
processes = [" and ", " or ", " not in ", " in ", "<=", ">=", "<-", ">-", "!=", "==", "-", "+", "^","*","$", '%',"/"]
|
||||
processes = ["&&", "||", "!@", "@", "<=", ">=", "<-", ">-", "!=", "==", "-", "+", "^","*","$", '%',"/"]
|
||||
loopoutput = []
|
||||
process = []
|
||||
didprocess = False
|
||||
|
||||
+24
-15
@@ -1,19 +1,28 @@
|
||||
log('welcome to PI calculator!')
|
||||
const x = 10
|
||||
const y = 10
|
||||
var stopped = ''
|
||||
|
||||
const sides = whole(input('how many sides will the circle have? '))
|
||||
const timing = time()
|
||||
var lasttime = timing
|
||||
const angles = 360 / sides
|
||||
var diameter = 0
|
||||
|
||||
var i = 0
|
||||
while (i <- sides) [
|
||||
diameter = diameter + sin(angles*i)
|
||||
if (time() - lasttime >- 1) [
|
||||
log((time() - timing) / i)
|
||||
lasttime = time()
|
||||
sub genGrid(x, y) [
|
||||
const board = []
|
||||
var i = 0
|
||||
while (i<-x) [
|
||||
append(board, [])
|
||||
var j = 0
|
||||
while (j<-y) [
|
||||
append(board[i], 'O')
|
||||
j++
|
||||
]
|
||||
i++
|
||||
]
|
||||
return board
|
||||
]
|
||||
log('pi is', sides/diameter)
|
||||
log('completed in', time()-timing, 'seconds')
|
||||
|
||||
sub showBoard(board, x, y) [
|
||||
var i = 0
|
||||
while (i<-x) [
|
||||
log(join(' ', board[i]))
|
||||
i++
|
||||
]
|
||||
]
|
||||
|
||||
showBoard(genGrid(x, y), x, y)
|
||||
Reference in new issue
Block a user