Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

AW: Fremde Syntax überpüfen (Parser ?)

  Alt 22. Feb 2011, 19:01
Ich weiss nicht...so ein Parser ist doch schon Overkill.
Das Vorhandensein von Parameter 1 bis 11 lässt sich leicht als Boolean-Array abbilden.
Und die verbalen Regeln lassen sich über if-Bedingungen formulieren.

Delphi-Quellcode:
type
  TParamExists = array[1..11] of Boolean;

procedure CheckParams(param : TParamExists);
var
  c : integer;
begin
  c := 0;
  if param[1] then Inc(c);
  if param[9] then Inc(c);
  if param[10] then Inc(c);
  if param[11] then Inc(c);


  // Prüfe Mindestanforderung
  if c = 0 then
    raise EParam.Create('Es muss mindestens einer der Parameter 1,9, 10 oder 11 angegeben werden')
  else if c > 1 then
    raise EParam.Create('Parameter 1,9, 10 und 11 dürfen nicht gemeinsam verwendet werden')


  if param[7] and not param[6] then
    raise EParam.Create('Verwendung von Parmeter 7 nur möglich, wenn auch Parameter 6 vorhanden ist');

    


  // hier weitere Regeln
  ...
end;
Andreas

Geändert von shmia (22. Feb 2011 um 19:10 Uhr)
  Mit Zitat antworten Zitat