diff --git a/chainify.py b/chainify.py index 1b62627..5f53780 100644 --- a/chainify.py +++ b/chainify.py @@ -1,4 +1,4 @@ -dyads = "*+-/%" +dyads = "*+-/%@" monads = list(map(chr, range(ord("A"), ord("Z") + 1))) nilads = "1234567890" @@ -16,10 +16,12 @@ for char in source: exprs = [] expr = [] -patterns = ["02", "10", "11", "12", "20", "21", "22"] +patterns = ["020", "021", "022", "02", "10", "11", "12", "20", "21", "22", + "102", "110", "111", "112", "120", "121", "122", + "202", "210", "211", "212", "220", "221", "222"] pattern = "" while len(arities): - if pattern in patterns: + if pattern in patterns and pattern + str(arities[-1][0]) not in patterns: exprs += [pattern, expr] expr = [] pattern = "" @@ -28,9 +30,9 @@ while len(arities): expr.append(arities[-1][1]) arities.pop() -if not exprs and pattern in patterns: - exprs += [pattern, expr] - expr = [] - pattern = "" +if expr and pattern in patterns: + exprs += [pattern, expr] + expr = [] + pattern = "" print(exprs)