EnableExplicit
Übersicht BlitzBasic Allgemein
Olaf_FranceBetreff: EnableExplicit |
Mi, Mai 08, 2019 19:32 Antworten mit Zitat |
|
---|---|---|
Hallo,
Ich bin gerade dabei,einen'fremden' Code zu anlysieren,mit B+, und bin nun etwas verwirrt,da alle StringVariablen nur beim ersten auftreten als solche deklariert sind. Um nun alle Variablen mit Ihrem Typ zu assoziieren,habe ich, PureBasic im Kopf, EnableExplicit an den anfang setzen wollen,um dem Compiler dazu zu bringen,alle nicht deklarierten Variablen Anzuzeigen. Aber so wie ich das sehe gibt es einen Solchen oder Ähnlichen Befehl in B+ nicht,ODER?? Gibt es eine möglichkeit,das Deklarieren zu 'erzwingen'? Gruss Olaf |
||
XeresModerator |
Do, Mai 09, 2019 20:30 Antworten mit Zitat |
|
---|---|---|
Grüße!
Nein, sowas gibt es in Blitz3D und BlitzPlus nicht. Wegen fehlgeleiteter Anfängerfreundlichkeit sind alle Variablen die zwischen drin vorkommen automatisch int mit 0 initialisiert - d.h. Tippfehler können extrem langwierig zu Debuggen sein. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Olaf_France |
Do, Mai 09, 2019 23:43 Antworten mit Zitat |
|
---|---|---|
Ich habe es schon befürchtet
Nun,dann muss ich damit Leben Danke |
||
AMY |
Fr, Mai 10, 2019 10:58 Antworten mit Zitat |
|
---|---|---|
Wenn ich es richtig verstehe ist das was du suchst z.b. der StrictModus von IDEal. Dort werden dann alle nicht vorher also Global/Local definierten Variablen Rot gekennzeichnet. | ||
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read! |
Olaf_France |
Fr, Mai 10, 2019 12:47 Antworten mit Zitat |
|
---|---|---|
@Amy
Jo,sowas in der Art |
||
DivineDominion |
Sa, Mai 11, 2019 8:49 Antworten mit Zitat |
|
---|---|---|
Vielleicht lohnt sich das nicht, wenn du nur einmal kurz das Projekt anschaust und nicht langfristig pflegst.
Du könntest einen einfachen "Linter" schreiben, der den Code parst, dann in Blöcke aufteilt, die den scopes entsprechen (in B+ gibt's ohne OOP ja nicht so viele Blöcke: Funktionen, Schleifen, ...), und dann nach Variablendeklaration und -verwendung analysiert. Heißt im Grunde nur, dass du Funktionsnamen und reservierte Keywords von B+ erkennst und aus der Liste zu analysierender Teile streichst und für den Rest eine Liste/Hashmap führst, die die Verwendungen mit den Deklarationen abgleicht. Muss ja kein 100% akkurates Tool sein, sondern nur Gefahrenstellen erkennen und dir zum Anschauen vorschlagen. Das ist allemal besser als immer wieder alles per Hand abzugleichen. |
||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
Olaf_France |
Sa, Mai 11, 2019 12:06 Antworten mit Zitat |
|
---|---|---|
Nun war ich aber schneller ,DivineDominion,
so was ähnliches bin ich grad drann Problem scopes hat sich im moment da ich deine Antwort gelesen hab erledigt. habe gestern ein 'AutoIndenter' von Rob Farley(Dec 2004) überarbeitet, so dass er mit BB und PB zurecht kommt auch habe ich "then" nicht übernommen (fast so schlimm wie goto/gosub) So,da also Start/Ende von Blöcken identifiziert werden können, und 'nem Syntax-highLighter, da sollte eine dynamiche Liste für Variable möglich sein mal sehen olaf |
||
HolzchopfMeisterpacker |
Sa, Mai 11, 2019 16:03 Antworten mit Zitat |
|
---|---|---|
Olaf_France hat Folgendes geschrieben: auch habe ich "then" nicht übernommen (fast so schlimm wie goto/gosub)
Das musst du mir jetzt aber genauer erklären Gerade weil es hier um strikteren Code geht... Bist du dir sicher, dass du deine Aussage nicht grad - sagen wir mal - 180° verkehrt formuliert hast? |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Thunder |
Sa, Mai 11, 2019 16:36 Antworten mit Zitat |
|
---|---|---|
Ich würde da gar nicht von vorne beginnen. Die BlitzBasic compiler sind eh open source. Die Änderung, dass Variablen nicht automatisch deklariert werden ist vermutlich recht gemütlich (ein paar Zeilen Code entfernen vielleicht?). | ||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Olaf_France |
Sa, Mai 11, 2019 20:36 Antworten mit Zitat |
|
---|---|---|
@Holzchopf
Das ist meine pers.Meinung. Ich finde, das ein 'richtiger' if-(else/elseif)-endif Block einfacher zu erkennen ist, und es 'Zwingt' mich den Block zu beenden. dadurch ist auch schon ohne "Check for Errors" eine fehlerhafte If-anweisung zu sehen Es ist halt eine Gewohnheit,die ich mir durch PureBasic angewöhnt habe,und einfach 'übersichtlicher finde. Ob Then nun gut oder Schlecht ist, sei jedem selber überlassen PS Auch an die getrennte schreibweise von zB End Function... muss ich mich erst gewohnen. alles in allem denke ich aber,das BB sich Trotz fehlender Weiterentwicklung nicht zu 'Verstecken' braucht Olaf |
||
HolzchopfMeisterpacker |
So, Mai 12, 2019 11:52 Antworten mit Zitat |
|
---|---|---|
Achso! Jetzt verstehe ich dich. Glaube ich Du sprichst von einzeiligen If-Statements. Die sind aber nicht "Then" geschuldet, denn "Then" ist optional und kann also durchaus auch bei blockigen Ifs verwendet werden (oder bei einzeiligen Ifs weggelassen werden... wuah).
Aber ja, zugegeben, ohne einzeilige Ifs ist Code parsen einfacher, weil dann zwingend immer ein Endif irgendwo da sein muss. |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Olaf_France |
So, Mai 12, 2019 17:04 Antworten mit Zitat |
|
---|---|---|
Holzchopf hat Folgendes geschrieben: Aber ja, zugegeben, ohne einzeilige Ifs ist Code parsen einfacher, weil dann zwingend immer ein Endif irgendwo da sein muss. So isses,Ausserdem sieht man am "Bild" , (Einzug),wo was ist,und da ,meine Meinung, ist dann ein möglicher Fehler eher zu finden. Einzeilige If's übersieht man da schon eher. Und das Parsen,ja was soll ich da machen ein- oder aus ziehen? Garnix machen? Ohne is einfacher Olaf |
||
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group