c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: [ct-bot] Basic-Interpreter (für c't-Bot)

Absender: Uwe Berger
Datum: Di, 24.05.2011 09:51:17
In-reply-to: <25B5E125-C661-42FF-B306-296D96193724@xxxxxxxxxxxxxxx>
References: <1ac236efdb2ae353dba0652e0009d0d7.squirrel@xxxxxxxxxxxxxxxxxxx> <4CF809BA.3070600@xxxxxxx> <B796DEF3-49CB-4F9A-B0AA-D42C7000926D@xxxxxxxxxxxxxxx> <20110309225657.432787bb.bergeruw@xxxxxxx> <4D19D5D5-4972-4D76-95F1-AFA65B36A076@xxxxxxxxxxxxxxx> <4D80E3E5.8050702@xxxxxxx> <C2269E6E-EBB2-40E9-B1EB-06984CD3ECDF@xxxxxxxxxxxxxxx> <9DDF1CF6-342A-4681-8296-77899A820AA8@xxxxxxxxxxxxxxx> <20110320213615.6522f43a.bergeruw@xxxxxxx> <6FB8CA6E-9D8F-4556-936C-0B0CC95B789A@xxxxxxxxxxxxxxx> <1a7fbb756d29789435f7638aa199bea6.squirrel@xxxxxxxxxxxxxxxxxxx> <77714C4A-E5BA-4D31-AFE5-4D20122ACC7C@xxxxxxxxxxxxxxx> <4D921683.5060902@xxxxxxx> <CEAAFE4A-1B5A-4163-ABAF-053B7261EC0A@xxxxxxxxxxxxxxx> <20110329231209.3a643626.bergeruw@xxxxxxx> <4D92DD39.90407@xxxxxxx> <53DA4806-F328-4FE1-82B9-17E8BE8F8C36@xxxxxxxxxxxxxxx> <4D94DFC7.1070505@xxxxxxx> <0DE34F28-6A1B-45F8-8A3C-9CC8D293410D@xxxxxxxxxxxxxxx> <4DA4B0EF.7020101@xxxxxxx> <25B5E125-C661-42FF-B306-296D96193724@xxxxxxxxxxxxxxx>


MoinMoin,

Am Mi, 27.04.2011, 21:44, schrieb Timo Sandmann:
> die Updates (s.u.) sind jetzt auch bei uns im SVN.
>
Eine neue BASIC-Version ist verfügbar:

Frank ist letztens aufgefallen, dass man bisher innerhalb von
if-Anweisungen Relationen nicht mit logischen Operatoren verknüpfen
konnte. (Ich habe mich immer darum gedrückt, da ich dachte es fällt keinem
auf ;-))

Dies ist jetzt mit der aktuellen Version im SVN auf mikrocontroller.net
möglich.

Jetzt geht also:

if a=1 and b=2 then... else...

Dabei wird von links nach rechts verknüpft, Klammerungen sind nicht
zulässig. Desweiteren können die Ergebnisse von einzelnen Relationen nicht
negiert werden. (ich denke mal, dass man so komplexe Relationen nicht
schreiben wird bzw. man diese auch entsprechend normalisieren kann...)

Die Operatoren "and" und "or" sind jetzt nur noch für logische Operationen
zulässig. Früher konnten sie auch für Bit-Operationen, alternativ zu "&"
und "|", verwendet werden, was jetzt nicht mehr geht.

Mit der derzeitigen Version auf mikrocontroller.net würde jetzt bei euch
auch String-Support mit in den Sprachumfang kommen. Also die Verwendung
von Zeichenkettenvariablen (z.B. a$="Hallo"), -feldern (dim a$(10)...)
sowie diverse -funktionen (left$(), right$(), mid$, str$(), chr$(), val(),
asc(), len() sowie "+"-Operator zum Zusammenfügen von Zeichenketten,
Realtionen mit Zeichenketten), was aber u.U. unverhältmäßig dynamischen
Speicher auf einer resourcenarmen MCU verbraucht. Deshalb kann man
Stringsupport auch vollständig via Define UBASIC_STRING in ubasic_config.h
abschalten.

Natürlich ist Doku und dort enthaltenes EBNF auf dem aktuellen Stand
angepaßt...

Grüße Uwe