>>
c proche du C tout ça
ben oui
* Avec quelques inspirations de l'ASM : il n'y a que 3 types : byte / word / long et on précise s'ils sont signés ou non avec un '+' ou un '-' (facultatif, car signés par défaut)
* quelques inspirations du Pascal (pour la clarté

) : @ pour obtenir l'adresse d'une variable, structures algorithmiques "en toutes lettres" : for
expr to
expr step
expr do ...
* Des nouveautés, principalement les déclarations qui se font entre crochets. A ce propos, en Azur elles peuvent se faire n'importe où dans un bloc d'instructions, contrairement au C où tout doit être placé au début. Autre nouveauté :
un opérateur inédit en C, l'opérateur de permutation : '<>', qui produit un code de bas niveau bien plus efficace que ce qu'on obtiendrait avec l'équivalent C "a= b; b= c; c= a;"
* Tout le reste (90

c'est du C
1) je ne sais pas trop, et je crois que je ne serais pas prêt pour le concours TI-fr
2) pas encore mais ça viendra, je me prend la tête sur des trucs plus vitaux actuellement.
2) oui, mais tu sais il n'est pas terminé mon compilo. Il ne sait que :
* gerer les includes et d'autres petits trucs de ce genre
* interpreter les déclarations
* déréférencer les pointeurs
* interpreter les égalités
Il me reste à implémenter plein d'opérateurs et les structures algorithmiques
Donc voici un code qui entre dans ses capacités actuelles :
#common : pour qu'il commente le code asm produit
void main[long exemple_de_paramètre] : les lettres accentuées sont parfaitement autorisées :)
{
[
byte @Pointeur, Tableau[32];
]
Pointeur= "Bonjour Pollux !";
Pointeur?= Tableau?; : en C ça donnerait '*Pointeur= *Tableau' tout simplement :)
exemple_de_paramètre= %111; : et oui ! En Azur le format binaire est reconnu !
}
Et le fichier de sortie, 'azur_asm' (note bien que les commentaires c'est le compilo qui les a générés) :
; Generated by the Azur compiler
; Last revision : Nov 1 2001 (V 1.0)
nolist
lea REGS_SVG(pc),a0 ; to avoid relocation bugs...
movem.l d0-a7,(a0)
move.l $C8,a6
lea AZUR_GLOBAL(pc),a5
bsr main
HALT_PROGRAM:
movem.l REGS_SVG(pc),d0-a7
rts
REGS_SVG:
ds.l 16
main: ;main
;exemple_de_paramètre via 8(a4)
link a4,#00036
;Pointeur via -4(a4)
;Tableau via -36(a4)
lea 0(a5),a0
move.l a0,-4(a4)
move.l -4(a4),a3
move.b -36(a4),0(a3)
move.l #7,8(a4)
unlk a4
rts
AZUR_GLOBAL:
dc.b "Bonjour Pollux !",0
dc.b 0 ;even
[edit]Edité par Thibaut le 02-11-2001 à 12:12:19[/edit]