text: from myparser import *
  import global_var
  from getvalues import *
  from foreach_fn_checks import *
  
  # funkcie pre mod single, vyhodnocuje jednotlive vyrazy,uklada vysledky
  # vstupom su vyrazy danej slabiny, pri uspesnom vyhodnoteni kazdeho vyrazu vrati True, inak False
  def modeSingle(expressions):
  
      iterator = 0
  
      for expression in expressions:  # iteracia vyraz po vyraze
  
          # kontrola foreach
          expression = checkForeach(expression, 'single')
  
          # kontrola pomocnych funkcii
          expression = checkFunctions(expression, 'single')
  
          # ak vrati false, tak nie su hodnoty pre field vo funkciach - ide sa na dalsiu slabinu
          if not expression:
              return False
  
          # ak syntakticka alebo sematicka chyba tak nekontrolujeme dalej
          if not myparse(expression):
              return False
  
          # vytvorenie yoynamu hodnot o velkosti poctu atributov paketu
          values = [[] for _ in range(len(global_var.fields))]
  
          # wrapping - zoznam sa moze menit
          tmpexp = [expression]
  
          # vyhladanie hodnot v danom pakete
          success = getValuesSingle(tmpexp, values, False)
  
          # ak su hodnoty tak vyhodnoti sa vyraz
          expression = tmpexp[0]
  
          # ak sa nasli hodnoty vtedy sa iba vyhodnoti vyraz
          if success:
              myEval(values, expression, iterator)  # vyhodnotenie vyrazu
          else:
              return False
  
          iterator += 1
  
      return True
  
  # funkcie pre mod all, vyhodnocuje jednotlive vyrazy,uklada vysledky
  # vstupom su vyrazy danej slabiny, pri uspesnom vyhodnoteni kazdeho vyrazu vrati True, inak False
  def modeAll(expressions):
  
      iterator = 0
  
      for expression in expressions:  # kontrol vsetkych vyrazov
  
          # kontrola foreach
          expression = checkForeach(expression, 'all')
  
          # kontrola pomocnych funkcii
          expression = checkFunctions(expression, 'all')
  
          # ak nie su hodnoty pre field ide sa na dalsiu slabinu
          if not expression:
              return False
  
              # ak syntakticka alebo sematicka chyba tak nekontrolujeme dalej
          if not myparse(expression):
              return False
  
          # vytvorenie yoynamu hodnot o velkosti poctu atributov paketu
          values = [[] for _ in range(len(global_var.fields))]
  
          # wrapping - zoznam sa moze menit
          tmpexp = [expression]
  
          # vyhladanie hodnot v celom subore
          success = getValuesAll(tmpexp, values)
  
          expression = tmpexp[0]
  
          # ak sa nasli hodnoty vtedy sa iba vyhodnoti vyraz
          if success:
              myEval(values, expression, iterator)  # vyhodnotenie vyrazu
          else:
              return False
  
          iterator += 1
  
      return True
  