Cuvinte rezervate :
var, MANDATORY, OPTIONAL, FORBIDDEN, if, fi, else, print_query, print_output, jump, goto, NULL, TYPE, get_frame, prev_frame, next_frame, NODE, LABEL
Terminale (token-uri):
a...z A...Z 0...9 NL ( ) < > [ ] , ; ! == != <= >= = " // (NL=newline)
Comentarii (linia curent'a): //
start_ddldecl_var noduri
nodurinod | nod noduri
decl_varVAR declaratii NL
declaratiiidentif | identif declaratii
identiflitera | litera rest_identif
rest_identiflitera | cifra
| litera rest_identif
| cifra rest_identif
literaa | b |...| z | A |...| Z |
cifra0 | 1 |...| 9
nodNODE nume_nod NL bloc_nod
nume_nodidentif
bloc_nodstatement | statement bloc_nod
statementLABEL eticheta NL | instruction
| function
etichetaidentif
instructioninstr_if | instr_pr_q | instr_pr_o
| instr_jmp | instr_go
| instr_atrib | instr_call
instr_ifif conditie NL if_statement NL fi
if_statementbloc | bloc NL else NL bloc
conditieconditie_logica
| conditie , conditie
| conditie ; conditie | !conditie
conditie_logicafunction | relatie
relatieoperand op_rel operand
operandexpresie | expresie_sir | constanta
op_rel== | != | < | > | <= | >=
instr_pr_qprint_query ( expresie_sir )
instr_pr_oprint_output lista_param_pr
instr_jmpjump nume_nod
instr_gogoto eticheta
instr_callcall nume_nod
instr_atribref_variabila = expresie
functionfunct_null | funct_type
| func_get_frame | func_next_frame
| func_prev_frame
funct_nullNULL ( variabila )
funct_typeTYPE ( variabila )
func_get_frameget_frame ( decl_frame )
func_next_framenext_frame ( decl_frame )
func_prev_frameprev_frame (decl_frame)
decl_frame![]()
| descr_frame decl_frame
descr_frame(<nume_frame> [EXP_FIELD] slot_decl)
nume_frameidentif
slot_declslot_descr | slot_descr slot_decl
slot_descr(slot_name [EXP_FIELD])
slot_nameidentif
EXP_FIELDMANDATORY | OPTIONAL | FORBIDDEN
constantasemn const_num | const_sir
semn+ | - |
![]()
const_numcifra | const_num
const_sir" sir_caract "
sir_caractlitera | sir_caract
ref_variabilaidentif
variabilauser_var | frame_var
user_varidentif
frame_varnume_frame | nume_frame.slot_acces
slot_accesnume_frame | slot_name
| slot_name.slot_index | slot_acces
slot_indexconst_num | user_var
expresieoperand op_aritm operand
op_aritm+ | - | * | /
expresie_siroperand_sir
| operand_sir + expresie_sir
operand_sirvariabila | const_sir