AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Der HAM-Parser
Thema durchsuchen
Ansicht
Themen-Optionen

Der HAM-Parser

Ein Thema von Dax · begonnen am 26. Dez 2005 · letzter Beitrag vom 17. Jan 2014
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#1

Re: Der HAM-Parser

  Alt 24. Jan 2006, 21:01
Hab deinen Parser mal für 2 kleinere Projekte eingesetzt.
Mir ist dabei auf gefallen:

- Der parser abeitet schnell ( Rechnungen in 15s )
- Das mit dem Variablen hinzufügen ist etwas gewöhungs bedürtig.

Es sollte vieleicht noch eine funktion geben wie
Delphi-Quellcode:
function isvarset(name: string): boolean;
begin
  if Parser.VariableByName[name]<> nil then begin
    result:=true;
  end else begin
    result:=false;
  end;
end;
oder ein procedure die eine variable mit einen wert setzt und sollte diese noch nicht erstellt sein diese auch erstellt.

Was mich noch interessieren würde was genau ist das x86-Assembler-Plugin ?
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Der HAM-Parser

  Alt 24. Jan 2006, 21:07
15s? War das ein Tippfehler oder ironisch?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: Der HAM-Parser

  Alt 24. Jan 2006, 21:11
Zitat von arbu man:
Es sollte vieleicht noch eine funktion geben wie
Delphi-Quellcode:
function isvarset(name: string): boolean;
begin
  if Parser.VariableByName[name]<> nil then begin
    result:=true;
  end else begin
    result:=false;
  end;
end;
Hmm, okay.. Werde ich im nächsten Update einbauen


Zitat von arbu man:
as mich noch interessieren würde was genau ist das x86-Assembler-Plugin ?
Na ein Plugin, das aus der geparsten Formel Assemblercode erstellt Läuft meistens fast doppelt so schnel.


Zitat von 3_of_8:
15s? War das ein Tippfehler oder ironisch?
Borgli? Is der bei dir so schnarchlahm?
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#4

Re: Der HAM-Parser

  Alt 24. Jan 2006, 21:18
Zitat:
Na ein Plugin, das aus der geparsten Formel Assemblercode erstellt Wink Läuft meistens fast doppelt so schnel.
Klingt nicht schlecht.

oh hab doch glatt vergessen zu schreiben das es nicht eine rechung war sondern 512² Rechnungen und nicht grade einfache rechnungen.
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: Der HAM-Parser

  Alt 24. Jan 2006, 21:20
Zitat von arbu man:
oh hab doch glatt vergessen zu schreiben das es nicht eine rechung war sondern 512² Rechnungen und nicht grade einfache rechnungen.
Zeich mal her was man mit dem Teil so schönes verbrechen kann
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#6

Re: Der HAM-Parser

  Alt 25. Jan 2006, 17:41
Zitat:
Zeich mal her was man mit dem Teil so schönes verbrechen kann
Ne ganze Menge AVs produzieren

Nee alle AVs hab ich heute aus dem prog verbannt.
Naja ist nach nicht ganz fertig aber was anzeigen kann.

cos(z*12)/(2*(z*6.28+1)) , tan(x*y) oder pi+x+y+z-3 sind ganz nett
Angehängte Dateien
Dateityp: zip fxy_112.zip (411,0 KB, 58x aufgerufen)
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#7

Re: Der HAM-Parser

  Alt 25. Jan 2006, 17:44
Zitat von arbu man:
Ne ganze Menge AVs produzieren
Ich hoffe an denen bist du Schuld

Zitat von arbu man:
Naja ist nach nicht ganz fertig aber was anzeigen kann.

cos(z*12)/(2*(z*6.28+1)) , tan(x*y) oder pi+x+y+z-3 sind ganz nett
Ja, sieht toll aus Bin mal auf die Endversion gespannt
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#8

Re: Der HAM-Parser

  Alt 25. Jan 2006, 17:54
Zitat von Dax:
Ich hoffe an denen bist du Schuld
Ja, man sollte halt nicht in einen array schreiben wenn dieser keinen Speicher dazu hat
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von ---Bernhard---
---Bernhard---

Registriert seit: 26. Dez 2003
Ort: Abensberg
111 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Der HAM-Parser

  Alt 7. Feb 2006, 21:21
Hallo.

Habe gerade noch ein Problem festgestellt!

Folgende Funktion geht tadellos:
x^2+1

Jedoch macht folgende Probleme:
x^(2)+1

Es wird stattdessen die Funktion "x^3" verwendet!

Wie kann ich das Problem am besten umgehen?

Mein Code für die Operatorendefinition lautet so:
Delphi-Quellcode:
class procedure THAMSimpleOperators.RegToParser(Parser: THAMParser);
begin
  with Parser do
  begin
    THAMSimpleOperators(AddOperator('+', otBinary, 1, Self)).fType := 1;
    THAMSimpleOperators(AddOperator('-', otBinary, 1, Self)).fType := 2;
    THAMSimpleOperators(AddOperator('*', otBinary, 2, Self)).fType := 3;
    THAMSimpleOperators(AddOperator('/', otBinary, 2, Self)).fType := 4;
    THAMSimpleOperators(AddOperator('^', otBinary, 3, Self)).fType := 10;

    THAMSimpleOperators(AddOperator('-', otunaryPrefix, 1, Self)).fType := 0;
    THAMSimpleOperators(AddOperator('+', otunaryPrefix, 1, Self)).fType := 20;

    // change EvalDir from LeftToRight(2^2^3 -> (2^2)^3) to RightToLeft(2^2^3 -> 2^(2^3)) for the Power-Operator
    OperatorByName['^'].EvalDir := edRightToLeft;
  end;
end;

procedure THAMSimpleOperators.Call(const Args: THAMVariableArray;
  const Result: THAMVariable);
begin
  case fType of
    1: Result.Value := Args[0].Value + Args[1].Value;
    2: Result.Value := Args[0].Value - Args[1].Value;
    3: Result.Value := Args[0].Value * Args[1].Value;
    4: Result.Value := Args[0].Value / Args[1].Value;

    10: Result.Value := Power(Args[0].Value, Args[1].Value);

    0: Result.Value := -Args[0].Value;
    20: Result.Value := Args[0].Value;
  end;
end;
Bernhard Doll
Das Leben ist ein sch*** Spiel... aber eine super Grafik!!
http://www.doll-online.net
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#10

Re: Der HAM-Parser

  Alt 7. Feb 2006, 21:37
Neue Version in der das nicht mehr passieren sollte ist hochgeladen..
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz