Commit 3b77ae67 authored by Vladimír Štill's avatar Vladimír Štill
Browse files

evalweb: Adapt to changes in lib

parent e3567716
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
from flask import Blueprint, render_template, request
from flask_wtf import FlaskForm  # type: ignore
from wtforms import RadioField   # type: ignore
from lib.parsing import ParsingError
from lib.parser import ParsingError
from evalweb.web_checker import WebChecker, Language, CompositeException
from evalweb.examples import examples, convert_examples
from typing import Optional
+6 −7
Original line number Diff line number Diff line
from typing import Dict, Tuple
from lib.parsing import Parser
from lib import parser

parser = Parser()
examples: Dict[Tuple[str, str], Tuple[str, str]] = {}
convert_examples: Dict[str, str] = {}

@@ -18,16 +17,16 @@ teacher_forms = [('DFA', teacher_dfa),
                 ('REG', student_reg)]

student_forms = [('DFA', student_dfa),
                 ('TOT', parser.dfa_to_str(parser.str_to_dfa(student_dfa)
                 ('TOT', parser.dfa_to_str(parser.dfa(student_dfa)
                                           .total())),
                 ('MIN', parser.dfa_to_str(parser.str_to_dfa(student_dfa)
                 ('MIN', parser.dfa_to_str(parser.dfa(student_dfa)
                                           .minimize())),
                 ('CAN', parser.dfa_to_str(parser.str_to_dfa(student_dfa)
                 ('CAN', parser.dfa_to_str(parser.dfa(student_dfa)
                                           .total().canonize())),
                 ('MIC', parser.dfa_to_str(parser.str_to_dfa(student_dfa)
                 ('MIC', parser.dfa_to_str(parser.dfa(student_dfa)
                                           .minimize().canonize())),
                 ('EFA', student_efa),
                 ('NFA', parser.nfa_to_str(parser.str_to_nfa(student_efa)
                 ('NFA', parser.nfa_to_str(parser.nfa(student_efa)
                                           .eliminate_epsilon())),
                 ('GRA', student_gra),
                 ('REG', student_reg)]
+2 −6
Original line number Diff line number Diff line
import lib.reg as reg
from lib.parsing import Parser, ParsingError
from lib import reg, parser
from lib.parser import ParsingError
from lib.checker import transform, dfa_transform, nfa_transform, check_task, \
                        check_alphabets
from typing import List, Optional
@@ -19,7 +19,6 @@ class Language: # contains information about formalism and its language
        self.string = string
        self.task = task

        parser = Parser()
        dfa = dfa_transform(self.string, self.task)
        self.minimal = parser.dfa_to_str(dfa.minimize().canonize())

@@ -45,7 +44,6 @@ class Language: # contains information about formalism and its language

    def gen_is_task(self, task: str) -> str:
        teacher = "NFA" if self.task == "EFA" else self.task
        parser = Parser()
        assert self.dfa is not None
        dfa = parser.dfa_to_str(self.dfa.canonize())
        return f"{teacher}-{task}:{dfa}"
@@ -127,7 +125,6 @@ class WebChecker:
                             student_string=self.student_string)

    def convert(self, student_type: str) -> str:
        parser = Parser()
        if self.task in {"DFA", "TOT", "MIN", "CAN", "MIC"}:
            dfa = dfa_transform(self.student_string, student_type)
            # avoid confusion by making the automaton total if the input
@@ -220,7 +217,6 @@ class WebChecker:
        return picture  # name of static image file to show in feedback

    def language(self, dfa: reg.DFA) -> Language:
        parser = Parser()
        return Language(parser.dfa_to_str(dfa))

    def DFA_lines(self, str_: str) -> None: