Skip to content
Snippets Groups Projects
ErrorTest.py 1.78 KiB

import sys
from os import listdir
from os.path import isfile, join

from Scanning import scan
from Parsing import parse
import Weeding

def allFiles(testDir):
     return [testDir + f for f in listdir(testDir) if isfile(join(testDir, f)) and f.startswith('Je')]

def main():

    # All files in the test directory
    testDirectory = "./Tests/"
    testFiles = allFiles(testDirectory)
    # testFiles = ['./Tests/Je_1_IntRange_MinusTooBigInt.java']
    print("**********************************************************")

    for f in testFiles:
        # print(f)

        # Scanning
        content = open(f, "r").read()
        (tokens, errorString) = scan(content)
        # Error in Scanning
        if tokens is None:
            # print("ERROR in Scanning: " + errorString)
            # print("**********************************************************")
            continue

        # s = "All Tokens: "
        # for token in tokens:
        #     if (token.name and token.lex):
        #         s += '(' + token.name + ',' + token.lex + '), '
        # print(s)

        # No weeds if everything is good (weeds = None)
        weeds = Weeding.fileNameCheck(tokens, f)
        if weeds:
            # print(weeds)
            continue



        # Parsing
        # print("Parsing starts")

        try:
            (steps, errorString) = parse(tokens)
        except:
            print("Exception in Parsing")

        # Error in Parsing
        if steps is None:
            # print("ERROR in Parsing: ", errorString)
            # print("**********************************************************")
            continue

        print(f)
        print("Succeeded")
        # print("All Steps:")
        # print(steps)

        print("**********************************************************")

main()