*** Protokolldatei gestartet *** Datum: Mi. Jun 27 19:57:51 2012 [Mittwoch, 27. Juni 2012] [19:57:51] Betreten Sie haben den Kanal #forth-ev betreten (-bernd@p5DCD6250.dip0.t-ipconnect.de). [Mittwoch, 27. Juni 2012] [19:57:53] danke [Mittwoch, 27. Juni 2012] [19:57:56] Modus Kanalmodi: [Mittwoch, 27. Juni 2012] [19:57:56] moin [Mittwoch, 27. Juni 2012] [19:58:03] Hallo! [Mittwoch, 27. Juni 2012] [19:58:03] Hallo Bernd [Mittwoch, 27. Juni 2012] [20:05:53] In der VD sind noch 1,5 Seiten Platz. [Mittwoch, 27. Juni 2012] [20:06:13] Ich glaube, die fülle ich mit dem neuen Recognizer von Gforth. [Mittwoch, 27. Juni 2012] [20:06:42] Gute Idee [Mittwoch, 27. Juni 2012] [20:10:25] Ich habe damit letzten Sonntag ein echtes String-Literal implementiert, das ging total einfach. [Mittwoch, 27. Juni 2012] [20:10:47] Ich stöbere grade im Hayes-tester output nach verwertbarem [Mittwoch, 27. Juni 2012] [20:11:09] Echtes String-Literal: "Dies ist ein String" [Mittwoch, 27. Juni 2012] [20:11:12] So manche Fehlermeldung ist für amforth einfach nicht korrekt ;) [Mittwoch, 27. Juni 2012] [20:11:15] Ohne Quote hinter dem startenden " [Mittwoch, 27. Juni 2012] [20:11:23] Äh, Leerzeichen. [Mittwoch, 27. Juni 2012] [20:11:37] Als Alternative zum s" im Interpreter? [Mittwoch, 27. Juni 2012] [20:11:56] Genau. [Mittwoch, 27. Juni 2012] [20:12:03] Weil s" nicht so sonderlich gelungen ist. [Mittwoch, 27. Juni 2012] [20:12:23] Ein anderer Vorschlag ist ->foo statt TO FOO [Mittwoch, 27. Juni 2012] [20:13:24] warum? [Mittwoch, 27. Juni 2012] [20:13:26] Ein Vorzug vom Recognizer ist, dass man diese Konstrukte auch mit POSTPONE compilieren kann. [Mittwoch, 27. Juni 2012] [20:13:32] Also POSTPONE ->foo [Mittwoch, 27. Juni 2012] [20:13:36] Mach' das mal mit TO :-) [Mittwoch, 27. Juni 2012] [20:13:53] achso, du hast kein Leerzeichen zwischen > und f [Mittwoch, 27. Juni 2012] [20:14:08] Genau. [Mittwoch, 27. Juni 2012] [20:14:22] tofoo ist aber auch nett ;) (evt mit einem o weniger) [Mittwoch, 27. Juni 2012] [20:14:54] jo, solche syntaktischen Sachen kann man prima mit recognizern organisieren [Mittwoch, 27. Juni 2012] [20:16:19] Ich glaube, dass die Recognizer ein wichtiger Baustein sind, um Forth wirklich umfassend erweiterbar zu machen. [Mittwoch, 27. Juni 2012] [20:16:54] Zumindest können sie es werden. [Mittwoch, 27. Juni 2012] [20:25:08] Weil der Recognizer ein Interface zu Postpone hat, ist er kein so Problem wie parsing words. [Mittwoch, 27. Juni 2012] [20:28:15] Ein Gedanke ist mir bei " noch gekommen: Soll der Recognizer eventuell das Parsing selbst übernehmen? [Mittwoch, 27. Juni 2012] [20:28:27] Also bisher bekommt mein Recognizer den String von PARSE-NAME übergeben. [Mittwoch, 27. Juni 2012] [20:28:55] Der "-Recognizer setzt dann >IN auf die Position nach dem " und parst dann selber nochmal. [Mittwoch, 27. Juni 2012] [20:29:23] Bislang ist der Recognizer auf Leerzeichen blind. [Mittwoch, 27. Juni 2012] [20:29:52] Aber Du hast ja addr/len als Returnparameter eingeplant. Das könnte man doch umwidmen zu "mach einfach hier weiter" [Mittwoch, 27. Juni 2012] [20:29:53] So ungefähr. Man kann damit also nicht Whitespace implementieren ;-) [Mittwoch, 27. Juni 2012] [20:31:15] andererseits weiss er nicht, wie er im Zweifel die Eingabezeile neu füllen muss [Mittwoch, 27. Juni 2012] [20:31:17] Die Idee momentan mit addr len ist, dass der Recognizer-Stack den geparsten String bekommt, und solange dran rummacht, bis er etwas verdaubares gefunden hat. [Mittwoch, 27. Juni 2012] [20:31:24] refill [Mittwoch, 27. Juni 2012] [20:31:32] also ein mehrzeiliger String ist nicht [Mittwoch, 27. Juni 2012] [20:31:37] Das wäre dann für mehrzeilige Strings. [Mittwoch, 27. Juni 2012] [20:31:45] Muss' ich mir mal überlegen, ob man das nicht gleich mit einbaut. [Mittwoch, 27. Juni 2012] [20:31:47] Ist nicht so schwierig. [Mittwoch, 27. Juni 2012] [20:31:56] klar, aber bislang nicht spezifiziert [Mittwoch, 27. Juni 2012] [20:32:28] ebenso die Block-Inputs. die können von Haus aus mehrere Zeilen haben. [Mittwoch, 27. Juni 2012] [20:34:15] andererseits ist es ja grade der charme der recognizer, dass die nicht mehr so viel parsen müssen [Mittwoch, 27. Juni 2012] [20:34:39] die " müsste der Interpreter machen [Mittwoch, 27. Juni 2012] [20:35:52] also eher parse [Mittwoch, 27. Juni 2012] [20:35:52] Nein, der soll nur ein Gerüst sein, in das man verschiedene Dinge einhängen kann. [Mittwoch, 27. Juni 2012] [20:36:05] Deshalb die Überlegung, auch PARSE-NAME in den Recognizer einzubauen. [Mittwoch, 27. Juni 2012] [20:36:13] Dann müsste der Parser genauso ausgelagert werden [Mittwoch, 27. Juni 2012] [20:36:37] ergo "lies mal die Zeile und wuschtele solange daran herum, bis was sinnvolles herauskommt" [Mittwoch, 27. Juni 2012] [20:36:38] ich werde erstmal los müssen [Mittwoch, 27. Juni 2012] [20:36:45] bbis demnächst [Mittwoch, 27. Juni 2012] [20:36:48] Verlassen Mandalargon hat den Kanal verlassen. [Mittwoch, 27. Juni 2012] [20:36:48] dito [Mittwoch, 27. Juni 2012] [20:37:05] Ciao [Mittwoch, 27. Juni 2012] [20:37:55] Wobei es genau zwei Regeln gibt: Entweder mit Leerzeichen oder doppelte Hochkomma, die paarweise vorkommen müssen [Mittwoch, 27. Juni 2012] [20:38:09] Nein, die Regeln bestimmt jeder Recognizer für sich. [Mittwoch, 27. Juni 2012] [20:38:35] Da kannst du auch einen (al*ge+bra-isch/e)-Formel-Recognizer einbauen, der Ausdrücke in Klammern parst. [Mittwoch, 27. Juni 2012] [20:39:03] hmm [Mittwoch, 27. Juni 2012] [20:39:43] Dann muss er wirklich den Endpunkt seiner Arbeiten kommunizieren. [Mittwoch, 27. Juni 2012] [20:39:53] Damit der Interpreter weiss, wo es weitergeht [Mittwoch, 27. Juni 2012] [20:40:04] Der Interpreter bekommt Token. [Mittwoch, 27. Juni 2012] [20:40:18] Token, die man interpretieren, compilieren und serialisieren kann. [Mittwoch, 27. Juni 2012] [20:40:30] Wie, liefert der Recognizer mit. [Mittwoch, 27. Juni 2012] [20:41:07] Ein Formel-Recognizer kann also z.B. einen Tree anlegen, und den dann durchlaufen. [Mittwoch, 27. Juni 2012] [20:41:46] Der Formel-Recognizer wird wohl eher ein Programm generieren, das den Formelausdruck berechnet [Mittwoch, 27. Juni 2012] [20:41:55] Richt etwas nach lisp [Mittwoch, 27. Juni 2012] [20:43:46] Wie er das macht, ist mir eher egal. [Mittwoch, 27. Juni 2012] [20:44:13] Bisher hatte man Formel-Recognizer, die einfach Spaces zwischen den Symbolen benötigten. [Mittwoch, 27. Juni 2012] [20:44:24] Das war ja auch schon gut. [Mittwoch, 27. Juni 2012] [20:46:56] IN jedem fall dürfte der recognizer einen String bekommen und damit ein execution token bauen, dass der Interpreter dann verarbeiten kann. Oder? [Mittwoch, 27. Juni 2012] [20:47:12] Ja, so ungefähr. [Mittwoch, 27. Juni 2012] [20:47:25] Meiner liefert drei Execution Tokens in einem kurzen Array zurück. [Mittwoch, 27. Juni 2012] [20:47:45] Für interpretieren, compilieren und serialisieren (aus dem man dann POSTPONE bauen kann) [Mittwoch, 27. Juni 2012] [20:47:52] (naja: ein XT mit 3 Einträgen) [Mittwoch, 27. Juni 2012] [20:48:22] Kann man vielleicht ungefähr so sehen. [Mittwoch, 27. Juni 2012] [20:50:29] Braucht man dann eigentlich noch einen Executor? [Mittwoch, 27. Juni 2012] [20:50:39] der dann das XT verarbeiten kann [Mittwoch, 27. Juni 2012] [20:51:12] Bislang macht "mein" recognizer die ganze Arbeit selbst. Der gforth-recognizer scheint schon was anderes zu machen. [Mittwoch, 27. Juni 2012] [20:51:33] zumindest erscheint es sinnvoll, die Arbeit aufzuteilen [Mittwoch, 27. Juni 2012] [20:52:21] Recognizer macht aus einem String den XT (ich bleibe dabei, ein XT), der Executor verarbeitet den dann und auf in die nächste iteration [Mittwoch, 27. Juni 2012] [20:52:43] Ja, so ungefähr. [Mittwoch, 27. Juni 2012] [20:52:52] Postpone/execute/compile ist eh immer gleich [Mittwoch, 27. Juni 2012] [20:53:11] Nur trenne ich an einer anderen Stelle: Der Recognizer weiß nicht, ob das dann im Interpreter-Modus, im Compiler-Modus oder von Postpone weiterverarbeitet wird. [Mittwoch, 27. Juni 2012] [20:53:23] muss er ja auch nict [Mittwoch, 27. Juni 2012] [20:53:46] wie erwähnt, mein XT ist komplexer als eine Zahl ;) [Mittwoch, 27. Juni 2012] [20:54:58] Ja, wenn man den Ansatz vom XT mit intelligent compile, hat, dann kann man das so direkt als XT interpretieren. [Mittwoch, 27. Juni 2012] [20:55:11] Da muss dann nur noch für POSTPONE ein postpone, oder sowas 'rein. [Mittwoch, 27. Juni 2012] [20:57:42] Für den String-Recognizer ist allerdings interessant, wie er zu seinem abschließendem " kommen kann. Ein refill würde u.a. den input buffer kaputt machen. [Mittwoch, 27. Juni 2012] [20:58:19] Ja, zu dem Zeitpunkt darf er dann nicht mehr fehlschlagen. [Mittwoch, 27. Juni 2012] [20:59:21] Trivialsysteme wie mein amforth könnten sich ja noch auf einzeilige Strings zurückzeiehen. Aber so generell wär das doch eher schick [Mittwoch, 27. Juni 2012] [21:16:06] ich bin dann auch weg. Bis neulich [Mittwoch, 27. Juni 2012] [21:16:17] Beenden MatthiasT hat den Server verlassen ("").