예제 #1
0
 def run_parser(self):
     print("Parsing...")
     if (len(self.tokens) != 0):
         parser = Parser(self.tokens)
     else:
         raise Exception("Parsing Error: The list of tokens is empty")
     self.tree = parser.parse()
     return True
예제 #2
0
def main():
    # Check that only one argument was passed
    if len(sys.argv) != 3:
        print("Tokenize takes two text files as an argument.")
        return

    # pass the text file to the Parser
    parser1 = Parser(sys.argv[1])
    parser2 = Parser(sys.argv[2])

    # run the Parsers
    parser1.run()
    parser2.run()

    # print the number of shared tokens
    parser1.compare(parser2)

    return
예제 #3
0
 def test_Parse_RoverPlans(self):
     parser = Parser()
     parser.parseLine(" 5 5 ")
     parser.parseLine(" 1  2  E   ")
     parser.parseLine("  LMlmLMlm")
     parser.parseLine(" 3  4W    ")
     parser.parseLine(" RM rm RM r m    ")
     plans = parser.compileRoverPlans()
     self.assertEqual(2, len(plans))
     self.assertEqual([1, 2, "E"], plans[0].startPoint)
     self.assertEqual("LMLMLMLM", plans[0].commands)
     self.assertEqual([3, 4, "W"], plans[1].startPoint)
     self.assertEqual("RMRMRMRM", plans[1].commands)
예제 #4
0
 def __init__(self, user_id, username, active_category, active_time):
     self.user_id = user_id
     self.username = username
     self.settings = {
         'category': active_category,
         'time': active_time,
     }
     self.channels = settings.channels.copy()
     self.parsed_channels = []
     self.parsed_channels_amount = 0
     self.parser = Parser(self.settings)
     self.messages = []
     self.messages_ids = []
     self.user_messages_ids = []
     self.messages_was_found = False
예제 #5
0
파일: tokenize.py 프로젝트: haven515/parser
def main():
    # Check that only one argument was passed
    if len(sys.argv) != 2:
        print("Tokenize takes one text file as an argument.")
        return

    # pass the text file to the Tokenizer
    parser = Parser(sys.argv[1])

    # run the Tokenizer
    parser.run()

    # print the results
    parser.print_results_sorted()

    return
예제 #6
0
    def test_Parse_Empty_Lines(self):
        lines = [
            " 5 5 ", "    ", " 1  2  E   ", "    ", "  LMlmLMlm", " 3  4W    ",
            "    ", " RM rm RM r m    "
        ]
        parser = Parser()

        for line in lines:
            parser.parseLine(line)

        plans = parser.compileRoverPlans()
        self.assertEqual(2, len(plans))
        self.assertEqual([1, 2, "E"], plans[0].startPoint)
        self.assertEqual("LMLMLMLM", plans[0].commands)
        self.assertEqual([3, 4, "W"], plans[1].startPoint)
        self.assertEqual("RMRMRMRM", plans[1].commands)
예제 #7
0
    def __init__(self, ip, port, username, password, verbose_level,
                 zones_identifier, area_identifier, ses_identifier,
                 status_identifier, states_identifier,
                 keep_alive_allowed_errors):

        self.ip = ip
        self.port = str(port)
        self.username = str(username)
        self.password = str(password)
        self.connected = False
        self.verbose_level = verbose_level
        self.parser = Parser(self, zones_identifier, area_identifier,
                             ses_identifier, status_identifier,
                             states_identifier)
        self.current_status = "Init phase"
        self.paracrypt = Paracrypt(username, password)
        self.running = False
        self.keep_alive_allowed_errors = keep_alive_allowed_errors
        self.keep_alive_errors = 0
예제 #8
0
def main ():
    parser = Parser()

    # read input from piped data
    for line in sys.stdin:
        line = line.rstrip()
        parser.parseLine(line)

    # throw error if something is wrong with input
    if not parser.boundary or not parser.allStartPoints or not parser.allCommands:
        raise ValueError("Error: {}\n. Something went wrong with the input")
    if len(parser.allStartPoints) != len(parser.allCommands):
        raise ValueError("Error: {}\n. Missing some data!")

    # setup plateau object and pass along the surface boundary and list of roverPlans
    plateau = Plateau(parser.boundary, parser.compileRoverPlans())

    # plot the rover paths along the plateau and compile the final rover positions
    plateau.plotRoverCourses()

    # output the final results
    for point in plateau.finalPositions:
        print("{} {} {}".format(point[0], point[1], point[2]))
예제 #9
0
 def test_Parse_Boundary(self):
     parser = Parser()
     line = " 5 5  "
     parser.parseLine(line)
     self.assertEqual([5, 5], parser.boundary)
예제 #10
0
 def test_Parse_Commands(self):
     parser = Parser()
     parser.parseLine("  LMlmLMlm")
     self.assertEqual("LMLMLMLM", parser.allCommands[0])
     parser.parseLine(" RM rm RM r m    ")
     self.assertEqual("RMRMRMRM", parser.allCommands[1])
예제 #11
0
 def test_Parse_Start_Point(self):
     parser = Parser()
     parser.parseLine(" 1  2  E   ")
     self.assertEqual([1, 2, "E"], parser.allStartPoints[0])
     parser.parseLine(" 3  4W    ")
     self.assertEqual([3, 4, "W"], parser.allStartPoints[1])