-
Thread
Boolscher Interpreter zur Laufzeit
Parser schrieb im Beitrag #7018746: > value_1.active = (A == B) AND (Y == X) OR ((D == F) AND (U == P)) Solche komplexen Ausdrücke zu parsen, ist ein Faß ohne Boden. Das geht nicht ohne rekursiv arbeitenden
Auf dem PC den Ausdruck mit einem richtigen Parser parsen (z.B. Boost.Spirit, ANTLR), einen Syntaxbaum aufbauen, und den Ausdruck in konjunktive oder disjunktive Normalform umformen (Verfahren nach Quine und McCluskey).
-
Thread
Parser für Grammatiken
('-')) && parse_prod() ) ; } bool parse_prod() { if ( ! parse_factor() ) return false; while ( (parse_literal('*') || parse_literal('/')) && parse_factor() ) ; } bool parse_factor
1 |2 ...|9 |1P | 2P ... | 9P *** Anwort: Du kannst es nicht wissen und dein Parser kann es auch nicht wissen. Also musst du die Grammatik so umstellen, dass dieser Fall nicht mehr auftritt. Wie eine Grammatik zur Erkennung von arithmetischen Ausdrücken aussehen kann, habe ich
-
Thread
C-Compiler selbstgeschrieben.
). Mit einem rekursiven Parser bin ich schon recht weit gekommen was das Thema Ausdrücke angeht. Funktionsaufrufe (die im Moment testhalber fest eingebaut sind, wird aber über eine Such/Aufbau-Funktion noch erweitert) und Variablen
möchte mir offenhalten einen C-Compiler dafür schreiben zu können. Als "Werkzeuge" habe ich halt den Parser und eben diese Ausdrucks-Auswertung. Damit lassen sich u.U. auch andere Sprachen wie Pascal/Basic/Eigene Sprachen realisieren, so der Traum :-). Aber eine konkrete Zielmaschine gibts nicht. Das
-
Thread
Mathematischer String Parser
Guten Abend! Ich arbeite zur Zeit an einem Parser für mathematische Ausdrücke. Vorerst soll dieser nur "einfache" Rechnungen mit Variabeln und den wichtigsten Konstanten und Funktionen lösen können. Später soll das ganze noch um logische Ausdrücke
Avedo schrieb: > Guten Abend! > > Ich arbeite zur Zeit an einem Parser für mathematische Ausdrücke. Aha, und welches Verfahren? Recursive Descent? Und wo ist ueberhaupt das Problem? Michael
-
Thread
Falsch gedacht... Stackframe
oder gleich mehrere), sage ich, worum es bei meiner Rekursion im Detail geht: Ich schreibe an einem Parser für arithmetische Ausdrücke (für meinen BASIC-Interpreter). Anhand der für BASIC üblichen Syntax soll er mathematische Berechnungen durchführen, und dazu einen String so Parsen, dass er Operatoren,
mehrere), >> sage ich, worum es bei meiner Rekursion im Detail geht: Ich schreibe an >> einem Parser für arithmetische Ausdrücke (für meinen BASIC-Interpreter). > > Soll der Parser etwa auf nem AVR laufen ? > Dann machs doch so, wie in Bascom, also immer nur eine Berechnung pro > Zeile erlauben
-
Thread
[AVR] Grammatik für AVR C (avr-gcc)
Standard-C unterscheiden. Wo genau gibt es Probleme? Aber musst du überhaupt den kompletten Code parsen? Sehr viel einfacher wäre es, mit regulären Ausdrücken gezielte Ersetzungen vorzunehmen. Wie sehen deine Spracherweiterungen denn aus?
> Der Ausdruck > sprintf(prompt, "[bt-cmd@"SADDR_FMT"]$ ", SADDR(addr)); > lässt sich einfach nicht parsen. Das liegt vielleicht daran, daß der C-Präprozessor die Zeichenketten verbindet. Der C-Compiler bekommt
-
Thread
Java .StackOverflowError
Gleichheit ist nirgendwo ausdrücklich genannt. Es gibt ja auch keine sprachlichen Mittel für solche Ausdrücke in (dieser Form) der EBNF. Vielmehr ergibt sie sich implizit aus der Beschreibung. Wenn man nach der Methode des rekursiven Abstiegs einen Parser für diese Grammatik konstruiert, dann wird sich ein
Okay, vielen Dank, ich weiß garnicht wie sehr ich zum Ausdruck brigen kann wie ich mich über Eure Hilfe hier freue. Werd noch etwas rumspielen, weitere Parser schreiben usw ...
-
Thread
Gibt es eine Programmiersprache mit diesem Schleifentyp?
zu entwickeln und diese zu parsen.
handgeschrieben Parser hat, mehr als wett gemacht.
-
Thread
Kommandoshell für µC: selber schreiben oder Parsergenerator (Flex/Bison bzw. GOLD)?
Hängt davon ab wie komplex die Sprache ist. Wenn es eine reguläre Sprache ist, reichen reguläre Ausdrücke und du kannst dir einen richtigen Parser sparen. Das sollte für die meisten einfachen Batch/Shell-Sprachen ausreichen. Wenn du so etwas wie mathematische Formeln mit beliebiger Verschachtelung lesen
gleich noch .NET in die Runde. Mein Credo, keep it simple. Eine shell, die keine mathematischen Ausdrücke auflösen muss, braucht keinen dicken Parser, es reicht eine einfache State-Machine mit weniger Zeilen, als ihr euch hier schon einen Wolf geschrieben habt. Als Anschauungsbeispiel (wenn zu primitiv
-
Thread
.map file parser
für solche Sachen). Ich würde für ein map-File jedenfalls spontan Perl wählen weil mit regulären Ausdrücken so ein Parser schnell hingeschrieben ist. Wie üblich gibt es in solchen Fällen kein Schwarz-Weiss. In Perl muss man sich auch erst einarbeiten. Wenn man C kann, dann ist das sicherlich nicht ganz
eine Ergänzung: Ich würde für ein map-File jedenfalls spontan Perl wählen weil mit regulären Ausdrücken so ein Parser schnell hingeschrieben ist. Das eigentlich aufwendige, die Einordnung der Daten in eine sinnvolle Struktur (wie die erwähnten Bäume oder Hashes) lässt sich wesentlich schneller hinschreiben
-
Thread
Problem mit __extension__ und __attribute__
denn das für ein Parser? Selbst geschrieben?
Nein der Parser ist nicht selbst geschrieben und ist ein C Code Parser für Python. Der Name des Parsers ist Pycparser.
-
Thread
Zwei Parser für numerische Ausdrücke
besser aufgegoben ist. Deshalb hier zwei Links: http://www.mikrocontroller.net/attachment/20914/Parser.c das ist der Parser für numerische Ausdrücke von Karl heinz Buchegger, der so ist, wie man es richtig macht. Kurz und präzise. http://www.mikrocontroller.net/attachment/20918/rr_parser.c und
http://www.mikrocontroller.net/search?query=parser+ausdr%C3%BCcke&forums%5B%5D=2
-
Thread
Taschenrechner für Windows gesucht
Nano schrieb im Beitrag #7335461: > Ich würde hier nicht von einem komplexen Parser ausgehen. Ich schon. Ein Parser ist zwingender Teil der Implementierung eines Taschenrechners in normaler Notation. Egal ob im PC simuliert oder in einem echten Taschenrechner. Egal ob mit oder ohne Vorrang. Natürlich ist er viel einfacher als ein Parser für C++, aber das ist nicht der Punkt. Es kann auch sein, dass jemand ein solches Programm entwickelt, ohne zu wissen, was ein Parser ist.
-
Thread
Taschenrechner Selbstbau: Programmstrukturfrage
=0; maxChar=ausdruck.length; for(int i=0;i<ausdruck.length;i++){ if(ausdruck[i]=="(")klammern++; if(maxklammern<klammern)maxklammern=klammern; if(ausdruck[i]==")")klammern--; } for(
if(isOperator(ausdruck[j])){ zoperator=ausdruck[j]; break; } if(isInteger(ausdruck[j])){ if(zoperator=="+")zwischenergebnis+=ausdruck[j],break; if(zoperator=
-
Thread
regex asc file parsen
Ich würde gerne mit Hilfe regulärer Ausdrücke https://regex101.com/ https://quickref.me/regex ein ASC-File parsen. Das File sieht so aus [code] SYMBOL voltage -128 160 R0 WINDOW 123 0 0 Left 2 WINDOW 39 0 0 Left 2 SYMATTR InstName
Christoph M. schrieb im Beitrag #7267469: > Dieser Ausdruck holt aber alle Zeilen, die "TEXT" enthalten, auch die > ohne ";" In dem Ausdruck kommt ja auch kein ";" vor. Wilhelm M. schrieb im Beitrag #7267500: > '^TEXT.*;' Das matcht aber nicht auf
-
Thread
C#: Parser für Funktionsdefinitionen
geparst werden sollen oder geht es im C# Quellen? Wenn es um C# geht kann man es über refection ohne parsen erledigen.
://en.wikipedia.org/wiki/Parser_combinator Die Parser werden damit direkt in der Zielsprache (in deinem Fall C#) geschrieben, sind aber wesentlich kürzer, übersichtlicher und leichter erweiterbar als handgeschriebene Recursive-Descendent-Parser
-
Thread
LogicBuddy: ein einfacher Logik-Minimierer
erleichtern soll, logische Funktionen in eine realisierbare Form zu bringen. Im wesentlichen werden Ausdrücke mit NAND und NOT erzeugt. Eingeben kann man sowohl eine Wahrheitstabelle - mit Klicki-Micki, als auch Ausdrücke mit 'and', 'or' usw. Es werden sowohl logische Ausdrücke wie x = ( a and b
Bekannt. Läuft nur unter Windows. Kennt nur * + ´ Notation. Fehlermeldung wie: Parse Error ...
-
Thread
Parsen von seriellen Protokollen?
und empfangen über einen UART (Byte-weise).Jetzt würde ich aber gerne über den FPGA eine Protokoll parsen das ich über den UART empfange. Sprich Adresse, Datenlänge, Datenpacken, CRC,... aus einem unendlichen Stream identifizieren. Kann mir für solch ein Aufgabe jemand ein Beispiel zeigen an dem
bereits die Daten als 8 Bit std_logic_vector geliefert. Diese Bytes würde ich gerne in eine Art Parser schicken um die Nutzdaten heraus zu filtern Mein "Protokoll" sollte in etwa so aussehen: 1. Byte: 0x0a = Start 2. Byte: 0x0x Datenbyte: 1 Nibbel (also ein halbes Byte) 0x01 bis 0x08 für 1
-
Thread
Weis jemand, wie man mathematische Ausdrücke in C++ auswert
Hallo, hat jemand von Euch einen Tip, wie man mathematische Ausdrücke die als String vorliegen "12+3*(5-3)" auswertet und am Ende als int(C++) vorliege hat. Danke, Bernd
Das Stichwort hier heisst "Auswertung von Infix-Ausdrücken" Konkret wandelt man den gegebenen Infix-Ausdruck in einen Postfix-Ausdruck um und wertet diesen dann aus. Anhand von deinem Beispiel: "12+3*(5-3)" -> 12 3 5 3 - * + => 18 cheers Literatur
-
Thread
Parsen von HTML Dateien?
als Javascript. Mit etwas Glück bekommt man das mit Regulären Ausdrücken zerlegt. Oder wenn du Glück hast, holt die Seite die Daten als Json über Ajax. Du kannst dann die Daten direkt holen. Gibt ein Programm namens Xidel, was diese ganzen Strategien zusammenfasst
#4138435: > Bei deiner bisherigen Strategie wäre das am wenigsten aufwendige, du > nimmst einen Parser der mit XPath zusammenarbeitet. Am besten in eine > Script-Sprache integriert, damit du den Rest, der sich nicht in XPath > machen lässt dranfrickeln kannst. WENN es denn wohlgeformtes XML ist
-
Thread
Empfehlung für eine Configfile-library gesucht
nach Erfahrungsberichten von Leuten, die das getan haben. > Und spätestens wenn mal ein Regex-Ausdruck mit rein soll oder etwas > ähnliches wird geflucht wenn gerade diese Konstellation die Lib nicht > unterstützt. Ein regulärer Ausdruck, der vom Config-Parser selbst bereits ausgewertet werden
Rolf M. schrieb im Beitrag #6821335: > Ein regulärer Ausdruck, der vom Config-Parser selbst bereits ausgewertet > werden muss? Nein, einen beliebigen String mit cryptischer Syntax die der config-Parser nicht als Kommetar oder sonstwas ansieht oder anderweitig
-
Thread
[suche] CSV-Parser
gefunden bisher > das ganze lässt sich aber auch mit Stringfunktionen (split) > und regulären Ausdrücken einfach von Hand machen. Genau dafür müchte ich ja den Parser nutzen. Der soll das Splitten und dei regulären Ausdrücke etc. durchführen. Ich hab so ca. 20 verschiedene Formate, da mach ich lieber 1 * parser und 20 Steuerdateien, anstelle 20 programme zusammen zu basteln
-
Thread
Java - mathematische Ausdrücke als String erstellen und berechnen - Kennt wer eine Bibliothek?
> "kennt wer..." wer so etwas schreibt, für den wird es schwer einen Parser für (mathematische) Ausdrücke zu schreiben... ...my 50c
Mark schrieb im Beitrag #5434731: > Grammatik, primitiver Tokenizer, einfacher Parser, in einen Baum parsen, > Baum evaluieren. Wer lustig drauf ist evaluiert gleich beim Parsen und > schenkt sich den Baum. Bei FH-informatik-Studiengängen kommt das nur extrem rudimentär dran,
-
Thread
Komplexe typedef struct mit 0 initialisieren
Zeiger auf int deklariert. Das sind zwei völlig verschiedene Dinge, die weder mittels regulärer Ausdrücke (für den Lexer) noch mittels EBNF (für den Parser) unterschieden werden können. Man benötigt dafür also zusätzliche Verrenkungen, die wahlweise im Lexer oder im Parser implementiert werden. Elegant
> Yalu X. schrieb: >> Das sind zwei völlig verschiedene Dinge, die weder mittels regulärer >> Ausdrücke (für den Lexer) noch mittels EBNF (für den Parser) >> unterschieden werden können. > > Dafür alleine reicht die Symboltabelle. Ja, klar, nur hat in einer idealen Welt weder die lexikalische
-
Thread
Wie programmiert man heutzutage C?
nicht zu unterschätzende Einarbeitung. Um einen Eindruck davon zu bekommen, wie ein einfacher Parser für arithmetische Ausdrücke aufgebaut ist, kannst du dir mal dieses Beispiel anschauen: http://www.mikrocontroller.net/topic/49925#847879 Das ist zwar C++, verwendet außer der umschließenden
angesehen habe, hatte er noch den bison-Parser.
-
Thread
uParse - die zweite.
Verwendung von Zeiger-Schweinereien :-)) hier mal die neue Version meines Parsers vor. Dieser Parser ist deutlich einfacher aufgebaut. Im Gegensatz zum 1. Parser wird hier ein Eingangsbuffer benötigt. Auch werden nicht, wie im ersten Parser, die Tokens sukzessive ermittelt, sondern schlicht und
in diesem Abschnitt kann die Hilfe mitcompiliert werden. - PARSE_LIST_FUNC Hier kann dem Makro vParserWriteChar(x) eine Funktion zum Ausgeben von Zeichen zugeordnet werden, damit die integrierte Hilfe genutzt werden kann. - PARSE_CODEC Hier werden die
-
Thread
Berechnungen mit Strings unter C
Du zäumst das Pferd am falschen Ende auf. Du kannst diesen Parser hier verwenden. Er funktioniert nach dem Prinzip des rekursiven Abstiegs. Die Hauptfunktion heist Parse. Du übergibst ihr einen String, der den auszuwertenden Ausdruck enthält, und kriegst als Ergebnis den Zahlenwert der diesem Ausdruck entspricht. Bsp: long Result = Parse( "(3+2)*4" ); liefert in Result den Wert 20 long Result = Parse( "3+2)*4" ); setzt die globale Variable HaveError auf einen Wert ungleich NO_SYNTAX_ERROR
-
Thread
Reguläre Ausdrücke
Hallo zusammen! Hat mal jemand einen Tipp für mich, wie ich mit sed "nicht druckbare Zeichen" aus meiner Datei verbannen kann? Ich bastele jetzt seit stunden an einer RE, aber irgendwie habe ich da ein Brett vor'm Kopf! Eine Zeile sähe so aus: [pre] BOARD test (SERNO: 0000000001) FAILED [/pre] ...und sollte danach so aussehen: [pre] BOARD test (SERNO: 0000000001) FAILED [/pre] Danke!
-
Thread
Ein Bytecode-Interpreter für ATMega644 u.a.
kompilieren kann. Ich gehe mal davon aus, dass es weniger Aufwand machen würde, einen Compiler mit einem Parser-Generator zu schreiben. Hast Du Erfahrung mit Parser-Generatoren und kannst Du einen empfehlen ? Florian
Dennoch bestehen die meisten Programme zum Großteil aus Speicherzugriffen und wenig komplexen Ausdrücken. Sehr komplexe Ausdrücke gibt es bestenfalls in Mathe-Algorithmen. Etwa wenn man ein Blick in die Berechnung der Γ-Funkton in der libm wagt. > Aber natürlich kann meine Maschine nicht nur jeweils
-
Thread
Präprozessor Problem
filenamen zusammendrösel, so z.b. : #define BD_DEVICE_CONFIG_PATH "config/" #define BD_DEVICE_PARSER "parser.cfg" #define BD_DEVICE_CONFIG_FILE BD_DEVICE_CONFIG_PATH##BD_DEVICE_PARSER #include BD_DEVICE_CONFIG_FILE nur das das include dann ein problem kriegt weil laut textersetzung ja das herauskommt : #include "config/" "parser.cfg" und nicht #include "config/parser.cfg" gibt es da ne möglichkeit ? dank und gruß rene
-
Thread
C/C++: Kennt ihr diesen "Operator" schon?
kein Syntaxelement. Sie können also weggelassen werden, solange sich der Ausdruck noch eindeutig parsen läßt. Nur der Mensch braucht sie zur besseren Lesbarkeit. Also ist auch er in der Verantwortung, sie sinnvoll zu setzen.
Bernd K. schrieb im Beitrag #6029256: > Der Parser oder Tokenizer oder meinetwegen auch die ganze Grammatik ist > krank wenn das erlaubt ist ohne einen Syntaxfehler auszuspucken. Interpunktion ist jetzt auch nicht Deine Stärke.
-
Thread
Syntaktische Analyse mit Flex/Bison
das Vorstelle mit meinem Parser.
the below links. flex-bison.http://bitbucket.org/matrix/changed-tiny If i use this input to parse a = 5; b = 6; print(a); scan(b); compiler.y works fine and output the parse tree. I am facing the problem to parse the if condition in the above compiler.y when But i run this input a
-
Thread
csv parsen kryptische Symbole
Hallo, ich habe eine .csv file, welche ich mit python parsen möchte. Aber diese sieht (meiner Meinung nach) sehr komisch aus. Dort sind einige komische Symbole enthalten. Das ganze kommt von einer Körperfettwaage. Das ist der Anfang [code] ÐÏࡱá
dass Die Daten dort drinne stehen, aber was ist das für ein Format, bzw. wie kann man das richtig parsen? Was sind das für Symbole?
-
Thread
c# - Visual Studio - Tabs Drucken
int Körpergewichtw; try { Körpergrößew = int.Parse(Körpergröße_Frau.Text); Körpergewichtw = int.Parse(Körpergewicht_Frau.Text); } catch { MessageBox.Show("Bitte geben Sie
int Körpergewichtm; try { Körpergrößem = int.Parse(Körpergröße_Mann.Text); Körpergewichtm = int.Parse(Körpergewicht_Mann.Text); } catch { MessageBox.Show("Bitte geben Sie
-
Thread
OpenAI als OCR-"Nachbrenner"? Kosten?
transformers [/code] und dann in Python: [code] #!/usr/bin/env python from argparse import ArgumentParser import pandas as pd import transformers as trf if __name__ == '__main__': parser = ArgumentParser(description='ChatGPT2 tokenizer') parser.add_argument('--save', '-s', help='pickle') parser.add_argument('words', nargs='+', help='the words to tokenize') args = parser.parse_args() tokenizer = trf.GPT2TokenizerFast.from_pretrained("gpt2") print(tokenizer(' '.join(args.words
-
Thread
RegEx in Javascript zum Formatieren von Code-Kommentaren
kontextfreie Sprachen (das sind die meisten Programmiersprachen inkl. JS oder HTML) mit regulären Ausdrücken zu parsen. Wenn du eine RegEx-Bibliothek hast die das kann, ist das kein echter regulärer Ausdruck mehr. Beweis: Reguläre Ausdrücke können mit endlichen Automaten implementiert werden, welche nur
viele), was man aber können muss, um die schließenden Klammern korrekt zu zählen. Zum "richtigen" Parsen braucht es die Grammatik, einen Tokenizer und einen Parser für kontextfreie Grammatiken, z.B. einen nichtdeterministischen Kellerautomaten. Das ist alles nicht ganz trivial, lernt man im Informatik
-
Thread
fehlermeldung delphi7
Techniken aus dem Bereich 'Compilerbau' um den String anhand der Grammatik fuer arithmetische Ausdruecke zu parsen und dann entweder: * den Ausdruck gleich waehrend der Parserei auszuwerten * einen sog. Expression-Tree aufzubauen und den dann (ev. nach Optimierung) auswerten zu lassen. Dies
ein Program das in der Lage ist festzustellen ob ein Text einer Grammatik entspricht, ist ein Parser. Fuer einfache arithmetische Ausdruecke sieht eine Grammatik zb so aus: Ausdruck = Term { ( "+" Term ) | ( "-" Term ) }. Term = Faktor
-
Thread
Regulärer Ausdruck: alles außer
Die Problematik bei *text vorm test und text danach* liegt darin, dass man mit *einem* Regex-Ausdruck nicht *text vorm und text danach* auswählen kann. Man kann mehrere Regex_Ausdrücke auswählen und dann kombinieren. Ausdruck 1: "text vorm " Ausdruck 2: "test" Ausdruck 3: " und text danach"
Mich interessiert der Text drumherum gar nicht. Der Java RegExp-Parser (->Matcher) prüft einfach, ob der übergebene String auf den Ausdruck passt. Und ich will ihn dazu bringen, TRUE zu sagen, wenn ein String den Text "test" nicht enthält :) Ich hoffe, das ist klarer
-
Thread
C# Wie auf einen String zugreifen
.Parse(sb.ToString()); } [/code]
Peter Roth schrieb im Beitrag #2155021: > gibt es in C# keine regulären Ausdrücke? Doch, gibt es. Die Syntax der Regular Expressions im .NET Framework ist allerdings leicht anders: [c] using System.Text.RegularExpressions; ... int version; bool parsed = int.TryParse(
-
Thread
Python/gerbmerge Installationsproblem
das Problem garnicht lösen lässt, ein Programm, mit dem ich Nutzen vom Layout erstellen kann;zum ausdrucken für Tonertransferverfahren. Gruß Rudi
gedacht. Wenn ich das setup.py von gerbmerge starte, bekomme ich eine Fehlermeldung, das SimpleParse (eine Bibliothek) fehlt. Auf der gerbmerge seite ist ein Link dazu. Wenn ich aber wiederum SimpleParse installieren will, kommt eine Fehlermeldung, das die Setup tools (ebenfalls eine Bibliothek
-
Thread
Vom Benutzer vorgegebene Funktion verarbeiten
Was du suchst nennt man Formel Parser http://www.mycsharp.de/wbb2/thread.php?threadid=71995
einer Compilerbau-Vorlesung. Grammatik hinschreiben, und stupide in einen rekursiven Top-Down Parser übersetzen. Auswertung/Berechnung dann direkt im Parser, oder über einen Syntaxbaum-Zwischenschritt, je nach dem...
-
Thread
Qt4 -> Qt5/6: scrollbar signal handling
noch nicht der > letzte ist. Scheint wirklich nur der eine zu sein: [pre] diff --git a/src/parser/odbpp/featuresparser.cpp b/src/parser/odbpp/featuresparser.cpp index 13dfba8..111b7e1 100644 --- a/src/parser/odbpp/featuresparser.cpp +++ b/src/parser/odbpp/featuresparser.cpp @@ -122,6 +122,8 @@ FeaturesDataStore* FeaturesParser::parse(void) void FeaturesParser::putAttrlist(const StructuredTextDataStore* ds) { + if (ds == NULL) + return; const StructuredTextDataStore::ValueType d = ds->getValueData();
-
Thread
Laufzeiten und GNU/Watcom C
reguläre Ausdrücke ?
Kompile-Zeit bekannt sind und nicht erst ein Formatstring geparst werden muss. warum reguläre ausdrücke? Na zum Parsen der Datensätze. Aber da weiß ich zu wenig über deinen Aufbau, ob es den Code übersichtlicher oder komplizierter machen würde.
-
Thread
Regexbefehle unverständlich - perl
https://wiki.selfhtml.org/wiki/Perl/Reguläre_Ausdrücke
Anwendungsfall mit einem XML/HTML Parser leichter.
-
Thread
AVR Bootloader in C - Artikel
record parserState = PARSER_STATE_DATA; break; default: parserState = PARSER_STATE_DATA; break;*/ } } break; // parse flash-data case PARSER_STATE_DATA
hex_check += hex_type; switch(hex_type) { case 0: parser_state = PARSER_STATE_DATA; break; case 1: parser_state = PARSER_STATE_CHECKSUM; break; default: parser_state = PARSER_STATE_DATA; break; } uart_putc
-
Thread
BASCOM vs. C Gesperrt
Wobei mir absolut nicht klar ist, wie man so einen Krampf nur machen kann. Das Parsen von arithmetischen Ausdruecken samt Punkt-vor-Strich-Regelung ist vom Schwierigkeitsgrad her 'Compilerbau - 3. Unterichtseinheit'
@thkais > Ganz einfach: Man spart den Stack, den man braucht, um den > Ausdruck zu parsen. Du meinst vielleicht 'um den Ausdruck auszurechnen' wenn man eine Stack Maschine implementiert. Richtig. Allerdings. Die meisten arithmetischen Ausdruecke brauchen eine Stack-Tiefe
-
Thread
Ausdrücke in BASCOM
Demo-Version vom BASCOM-AVR installiert. Wie ich beim Test merkte, kann (konnte?) BASCOM keine Ausdrücke wie x = a + b + c selbständig auswerten, sondern immer nur zwei Argumente. Ich würde das einmal als "Evaluierung von Rechenausdrücken" umschreiben. Kann mir jemand sagen, ob sich das mittlerweile gebessert hat? Falls nicht, gibt es vielleicht die Möglichkeit, einen Parser, so wie in anderen Programmiersprachen (z.B. C) in BASCOM einzubinden, der vor der eigentlichen Kompilierung aufgerufen wird und die Ausdrücke automatisch korrekt zerlegt? Viele Grüße Dirk
-
Thread
fragezeichen operator may be undefined
natürlich. Aber das sind nicht die Begrenzungen der Sprache, es ist der Optimizer. Warum ein Ausdruck, der sich ohne Probleme parsen und ausführen lässt, undefiniertes Ergebnis liefern soll, ist für mich nur schwer oder überhaupt nicht zu verstehen. Hat natürlich nichts damit zu tun, ob ein
#4652786: > Aber das sind nicht die Begrenzungen der Sprache, es ist der > Optimizer. Warum ein Ausdruck, der sich ohne Probleme parsen und > ausführen lässt, undefiniertes Ergebnis liefern soll, ist für mich > nur schwer oder überhaupt nicht zu verstehen. > > Hat natürlich nichts damit zu tun
-
Thread
c#: substring unbekannter länge aus string entfernen
gefunden substring mit den errechneten längen. als Alternative kann man auch mit regulären ausdrücken arbeiten "<p[^>]*>"
...und bezüglich regulärer ausdrücke gibt es die klasse Regex.
-
Thread
AT Command Interpreter, welches konzept?
http://de.wikipedia.org/wiki/Parser
ist nicht so weit von Deiner switch-Anweisung entfernt - nur dass das Pattern ein regulärer Ausdruck sein kann (wenn mich meine Erinnerung nicht trügt.) Große Überschrift ist übrigens "Compilerbau"; vielleicht auch noch "Theorie formaler Sprachen".