def make_general_rules(base: int, ulim: int, forest: list):
    forest.append(make_tree(["d", "P"], ["d", "P"], "MUL"))
    forest.append(make_tree(["M", "N"], ["M", "N"], "ADD"))

    forest.append(make_tree("digits", range(1, base), "MEM"))
    # Generate separate terms for powers of the base
    exp = 2
    i = base**exp
    powers = []
    while i in range(base**2, ulim + 1):
        forest.append(make_tree("B**" + str(exp),
                                [str(base), str(exp)], "POW"))
        powers.append(i)
        exp += 1
        i = base**exp

    powers.append(base)
    """for p in powers:
        mult = []
        for i in range(1, base):
            if i * p >= ulim:
                break
            mult.append(i * p)
        forest.append(make_tree("power " + str(p), mult, "MEM"))"""

    forest.append(make_tree("powers", powers, "MEM"))

    return forest
示例#2
0
def mnd():
    num_type = 6
    ulim = None
    forest = []
    terms = [
        "yil", "er4", "san1", "si4", "wu3", "liu4", "qil", "ba1", "jiu3",
        "shi2"
    ]

    forest = first_three(forest, terms)
    forest = successors(forest, terms, 3, 10)
    forest.append(language_tree.make_tree(["w", "shi2"], ["w", "shi2"], "MUL"))
    forest.append(language_tree.make_tree(["u", "v"], ["u", "v"], "ADD"))
    forest.append(language_tree.make_tree("bai3", ["shi2", "er4"], "POW"))

    #forest.append(language_tree.make_tree(
    #"u", ["er4", "san1", "si4", "wu3", "liu4", "qi1", "ba1", "jiu3"], "MEM"))
    #forest.append(language_tree.make_tree("v", [
    #"shi2", "er4shi2", "san1shi2", "si4shi2", "wu3shi2", "liu4shi2", "qi1shi2", "ba1shi2", "jiu3shi2"], "MEM"))
    forest.append(
        language_tree.make_tree(
            "w",
            ["yi1", "er4", "san1", "si4", "wu3", "liu4", "qi1", "ba1", "jiu3"],
            "MEM"))

    return forest, num_type, ulim
示例#3
0
def chi():
    num_type = 0
    ulim = None
    forest = []
    terms = ["taman", "surumana"]

    forest.append(language_tree.make_tree(terms[0], 1, "ONE"))
    forest.append(language_tree.make_tree(terms[1], [2, 100], "HIG"))

    return forest, num_type, ulim
示例#4
0
def prh():
    num_type = 0
    ulim = None
    forest = []

    forest.append(language_tree.make_tree("hoi_1", 1, "GAU"))
    forest.append(language_tree.make_tree("hoi_2", [2, 4], "GAU"))
    forest.append(language_tree.make_tree("aibaagi", [5, 100], "GAU"))

    return forest, num_type, ulim
示例#5
0
def war():
    num_type = 0
    ulim = None
    forest = []

    forest.append(language_tree.make_tree("xica pe", 1, "ONE"))
    forest.append(language_tree.make_tree("dois", 2, "GAU"))
    forest.append(language_tree.make_tree("many", [3, 100], "GAU"))

    return forest, num_type, ulim
示例#6
0
def knk():
    num_type = 1
    ulim = 3
    forest = []
    terms = ["putchik", "narimbo", "krutuip", "inhauit", "kuan"]

    forest = first_three(forest, terms)
    forest.append(language_tree.make_tree(terms[3], 4, "SUC"))
    forest.append(language_tree.make_tree(terms[4], [5, 100], "HIG"))

    return forest, num_type, ulim
示例#7
0
def fuy():
    num_type = 0
    ulim = None
    forest = []
    terms = ["fidan", "yovalo", "yovalo hul mindan", "hukas"]

    forest.append(language_tree.make_tree(terms[0], 1, "ONE"))
    forest.append(language_tree.make_tree(terms[1], 2, "GAU"))
    forest.append(language_tree.make_tree(terms[2], 3, "GAU"))
    forest.append(language_tree.make_tree(terms[3], [4, 100], "HIG"))

    return forest, num_type, ulim
示例#8
0
def awp():
    num_type = 1
    ulim = 4
    forest = []
    terms = ["maza", "pas", "kutna", "ambara"]

    forest = first_three(forest, terms)

    forest.append(language_tree.make_tree("ambara", 4, "SUC"))
    forest.append(language_tree.make_tree("ambara", [5, 100], "HIG"))

    return forest, num_type, ulim
def make_rules_up_to_base(base: int):
    forest = []
    if base < 4:  # Handle bases smaller than subitizing range
        for i in range(1, base):
            forest.append(make_tree(i, i, "ONE", True))
        forest.append(make_tree("B", base, "SUC"))
        return forest

    forest = first_three(forest, [1, 2, 3])
    forest = successors(forest, [i for i in range(4, base + 1)], 3, base)

    return forest
示例#10
0
def myu():
    num_type = 0
    ulim = None
    forest = []
    terms = ["pug", "xep xep", "ebapug", "ebadipdip", "adesu", "ade"]

    forest = first_three(forest, terms)
    forest.append(language_tree.make_tree(terms[3], 4, "GAU"))
    forest.append(language_tree.make_tree(terms[4], [5, 11], "GAU"))
    forest.append(language_tree.make_tree(terms[5], [12, 100], "GAU"))

    return forest, num_type, ulim
示例#11
0
def kay():
    num_type = 1
    ulim = 4
    forest = []
    terms = ["warngiida", "kiyarrngka", "burldamurra", "mirdinda", "muthaa"]

    forest = first_three(forest, terms)

    forest.append(language_tree.make_tree(terms[3], 4, "SUC"))
    forest.append(language_tree.make_tree(terms[4], [5, 100], "HIG"))

    return forest, num_type, ulim
示例#12
0
def goo():
    num_type = 0
    ulim = None
    forest = []
    terms = ["yoowarni", "garndiwiddidi", "ngarloodoo", "marla", "many"]

    for c in range(2):
        forest.append(language_tree.make_tree(terms[c], c + 1, "ONE"))

    for c in range(2, 4):
        forest.append(language_tree.make_tree(terms[c], c + 1, "GAU"))

    forest.append(language_tree.make_tree(terms[4], 7, "GAU"))

    return forest, num_type, ulim
示例#13
0
def successors(forest, terms, start, end, exclude_beginning=True):
    for c in range(start, end):
        term_index = c
        if exclude_beginning:
            term_index = c - start
        forest.append(language_tree.make_tree(terms[term_index], c + 1, "SUC"))

    return forest
示例#14
0
def wsk():
    num_type = 1
    ulim = 10
    forest = []
    terms = ["itoketa", "itelala", "iteltoke"]

    forest = first_three(forest, terms)

    forest.append(language_tree.make_tree(["w", "-", "w"], ["w", "w"], "ADD"))
    forest.append(
        language_tree.make_tree(["w", "-", "w", "itoketa"], ["w-w", "itoketa"],
                                "ADD"))
    forest.append(
        language_tree.make_tree(["iteltoke", "-", "iteltoke", "-", "itelala"],
                                ["iteltoke-iteltoke", "itelala"], "ADD"))
    forest.append(
        language_tree.make_tree(
            ["kuting", "dilisan", "sa", "itelala", "-", "itelala"],
            ["itelala-itelala-itoketa", "itelala-itelala"], "ADD"))
    forest.append(
        language_tree.make_tree(["kuting", "dilisan", "-", "dilisan"],
                                ["itelala-itelala-itoketa", "itelala"], "MUL"))
    forest.append(
        language_tree.make_tree("kuting dilisan-dilisan", [11, 100], "HIG"))
    forest.append(language_tree.make_tree("u", ["itelala", "iteltoke"], "MEM"))

    return forest, num_type, ulim
示例#15
0
    def add_rule(self, form, numeral, op):
        self.forest.append(
            language_tree.make_tree(form, numeral, op, self.num_only))

        def first_three(self, terms):
            for c in range(3):
                self.forest.append(
                    language_tree.make_tree(terms[c], c + 1, "ONE",
                                            self.num_only))
示例#16
0
def acg():
    num_type = 1
    ulim = 3
    forest = []
    terms = ["bague", "chamai", "matalii"]

    forest = first_three(forest, terms)
    forest.append(language_tree.make_tree(terms[2], [4, 100], "HIG"))

    return forest, num_type, ulim
示例#17
0
def yid():
    num_type = 1
    ulim = 5
    forest = []
    terms = ["guman", "jambul", "dagul", "yunggan gunyjii", "mala"]

    forest = first_three(forest, terms)
    forest = successors(forest, terms, 3, 5)
    forest.append(language_tree.make_tree("mala", [6, 100], "HIG"))
    return forest, num_type, ulim
示例#18
0
def mrt():
    num_type = 1
    ulim = 3
    forest = []
    terms = ["kalika", "kayarra", "jarrkurti", "maruwarla"]

    forest = first_three(forest, terms)

    forest.append(language_tree.make_tree(terms[3], [4, 100], "HIG"))

    return forest, num_type, ulim
示例#19
0
def myi():
    num_type = 1
    ulim = 3
    forest = []
    terms = ["yawumbawa", "yabaranwa", "yabalawa"]

    forest = first_three(forest, terms)

    forest.append(language_tree.make_tree(terms[2], [4, 100], "HIG"))

    return forest, num_type, ulim
示例#20
0
def bae():
    num_type = 1
    ulim = 3
    forest = []
    terms = ["baku-nakaji", "biku-nama", "kijiku-nama"]

    forest = first_three(forest, terms)

    forest.append(language_tree.make_tree(terms[2], [4, 100], "HIG"))

    return forest, num_type, ulim
示例#21
0
def ram():
    num_type = 1
    ulim = 5
    forest = []
    terms = ["saimig", "puksak", "pansak", "kugkugbi", "kwikistar"]

    forest = first_three(forest, terms)
    forest = successors(forest, terms, 3, 5)
    forest.append(language_tree.make_tree(terms[4], [6, 100], "HIG"))

    return forest, num_type, ulim
示例#22
0
def pit():
    num_type = 1
    ulim = 3
    forest = []
    terms = ["kutju", "kutjara", "mankurpa"]

    forest = first_three(forest, terms)

    forest.append(language_tree.make_tree(terms[2], [4, 100], "HIG"))

    return forest, num_type, ulim
示例#23
0
def hix():
    num_type = 1
    ulim = 3
    forest = []
    terms = ["towenyxa", "asako", "osorwawo"]

    forest = first_three(forest, terms)

    forest.append(language_tree.make_tree(terms[2], [4, 100], "HIG"))

    return forest, num_type, ulim
示例#24
0
def xoo():
    num_type = 1
    ulim = 3
    forest = []
    terms = ["?ua(p)", "num(p)", "ae(p)"]

    forest = first_three(forest, terms)

    forest.append(language_tree.make_tree(terms[2], [4, 100], "HIG"))

    return forest, num_type, ulim
示例#25
0
def ana():
    num_type = 1
    ulim = 3
    forest = []
    terms = ["peada", "betacata", "quimisha"]

    forest = first_three(forest, terms)

    forest.append(language_tree.make_tree(["quimsha", "beta"], [4, 100],
                                          "HIG"))

    return forest, num_type, ulim
示例#26
0
def imo():
    num_type = 1
    ulim = 5
    forest = []
    terms = [
        "mugasl", "sabla", "sabla mugo", "sabla sabla", "sabla sabla mugo"
    ]

    forest = first_three(forest, terms)
    forest = successors(forest, terms, 3, 5)
    forest.append(language_tree.make_tree(terms[4], [6, 100], "HIG"))

    return forest, num_type, ulim
示例#27
0
def brs():
    num_type = 1
    ulim = 5
    forest = []
    terms = [
        "sig-u/o", "hua-ra", "idia-ra", "babarirak-u/o", "kohobokarak-u/o"
    ]

    forest = first_three(forest, terms)
    forest = successors(forest, terms, 3, 5)
    forest.append(language_tree.make_tree(terms[4], [6, 100], "HIG"))

    return forest, num_type, ulim
示例#28
0
def spa():
    num_type = 6
    ulim = None
    forest = []
    terms = [
        "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho",
        "nueve", "diez", "once", "doce", "trece", "catorce", "quinze"
    ]

    forest = first_three(forest, terms)
    forest = successors(forest, terms, 3, 15)
    forest.append(language_tree.make_tree(["u", "v"], ["u", "v"], "ADD"))
    forest.append(language_tree.make_tree(["w", "y", "v"], ["w", "v"], "ADD"))
    forest.append(language_tree.make_tree("cien", ["diez", "dos"], "POW"))

    #forest.append(language_tree.make_tree(
    #"x", ["seis", "siete", "ocho", "nueve"], "MEM"))
    #forest.append(language_tree.make_tree(
    #"u", ["veinti", "treinta", "cuaranta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa"],
    #"MEM"))
    forest.append(
        language_tree.make_tree("v", [
            "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho",
            "nueve"
        ], "MEM"))
    forest.append(
        language_tree.make_tree("w", [
            "dieci", "veinti", "treinta", "cuaranta", "cincuenta", "sesenta",
            "setenta", "ochenta", "noventa"
        ], "MEM"))

    forest.append(language_tree.make_tree("diez", "dieci", "EQU"))
    forest.append(language_tree.make_tree("thir", "three", "EQU"))
    forest.append(language_tree.make_tree("for", "four", "EQU"))
    forest.append(language_tree.make_tree("fif", "five", "EQU"))
    forest.append(language_tree.make_tree("eigh", "eight", "EQU"))

    return forest, num_type, ulim
示例#29
0
def hpd():
    num_type = 1
    ulim = 20
    forest = []
    terms = ["?ayup", "ko?ap", "mora?ap", "babni", "?aedapuh"]

    forest = first_three(forest, terms)
    forest = successors(forest, terms, 3, 5)
    forest.append(
        language_tree.make_tree(["cap", "cob", "popog"], ["?aedapuh", "?ayup"],
                                "ADD"))
    forest.append(
        language_tree.make_tree(["u", "cob", "cakget"], ["?u", "?aedapuh"],
                                "ADD"))
    forest.append(
        language_tree.make_tree(["cob", "ni-", "hu?"], ["?aedapuh", "ko?ap"],
                                "MUL"))
    forest.append(
        language_tree.make_tree(["v", "jib", "cakget"], ["v", "cob ni-hu?"],
                                "ADD"))
    forest.append(
        language_tree.make_tree(["?ayup", "jib", "hu?"],
                                ["?aedapuh", "mora?ap"], "MUL"))
    forest.append(
        language_tree.make_tree(["jib", "ni-", "hu?"], ["?aedapuh", "babni"],
                                "MUL"))
    forest.append(language_tree.make_tree("jib ni-hu?", [21, 100], "HIG"))
    forest.append(
        language_tree.make_tree("u", ["ko?ap", "mora?ap", "babni"], "MEM"))
    forest.append(
        language_tree.make_tree("v",
                                ["form(another)", "ko?ap", "mora?ap", "babni"],
                                "MEM"))
    forest.append(language_tree.make_tree("form(another", "?ayup", "EQU"))

    return forest, num_type, ulim
示例#30
0
def wch():
    num_type = 1
    ulim = 10
    forest = []
    terms = [
        "wenyala", "tagw", "najtefwayal", "fwantes ihi", "qwe wenyal",
        "ipofwuj", "ipofwustoj", "ipofwusfwaya el", "ipofwusfwantes ihi",
        "oqwecho taqs"
    ]

    forest = first_three(forest, terms)
    forest = successors(forest, terms, 3, 10)
    forest.append(language_tree.make_tree(terms[8], [11, 100], "HIG"))

    return forest, num_type, ulim