SynDEx v7 Grammar |
"on": ON "true": TRUE "false": FALSE
"?": IN "!": OUT "->": TO "<-": BACKARROW '@': AT '=': EQU '\\': BACKSLASH '*': TIMES '/': DIV '-': MINUS '%': CEIL '|': BAR '[': LDIM ']': RDIM '<': LARG '>': RARG '{': LLIST '}': RLIST '(': LPAR ')': RPAR '&': AND ':': COL '#'[^\n]*: COMMENT '"'[^'"']*'"'*: STRING ['a'-'z''A'-'Z''_']['a'-'z''A'-'Z''_''-''0'-'9''*']*: NAME ( if not a keyword ) ['+''-']?['0'-'9']+('.'['0'-'9']*)?('e'['+''-']?['0'-'9']+)?: VAL
"include": INCLUDE "def": DEF "main": MAIN "application": APPLICATION "description": DESCRIPTION
"constant": CONSTANT "sensor": SENSOR "actuator": ACTUATOR "memory": DELAY "algorithm": ALGORITHM "internal": INTERNAL "attach_all": ATTACH_ALL "attach_ref": ATTACH_REF "attach_condi": ATTACH_CONDI "attach_condo": ATTACH_CONDO "attach_explode": ATTACH_EXPLODE "attach_implode": ATTACH_IMPLODE "conditions": CONDITIONS "references": REFERENCES "dependences": DEPENDANCES "strong_precedence_data": STRONGPRECEDENCEDATA "weak_precedence_data": WEAKPRECEDENCEDATA "precedence": PRECEDENCE "data": DATA "condition_synchro": CONDITION_SYNCHRO
"architecture": ARCHITECTURE "operator": OPERATOR "operators": OPERATORS "gate": GATE "medium": MEDIUM "media": MEDIA "sampp": SAMPP "sammp": SAMMP "ram": RAM "broadcast": BROADCAST "no_broadcast": NOBROADCAST "extra_durations_operator": EXTRA_DURATIONS_OPERATOR "extra_durations_medium": EXTRA_DURATIONS_MEDIUM "connections": CONNECTIONS
"operation_group": OG "software_component": XSC "constraint": CONSTRAINT "absolute": ABSOLUTE "relative": RELATIVE "union": UNION "disjunction": DISJUNCTION "syndex_version": SYNDEX_VERSION "initseq": INIT_SEQ "loopseq": LOOP_SEQ "endseq": END_SEQ "code_phases": CODE_PHASES
"ports": PORTS "schedules": SCHEDULES "operation_scheduled": OPERATION_SCHEDULED "scheduled": SCHEDULED "calcul": CALCUL "communication": COMMUNICATION "send": SEND "receive": RECEIVE "sync": SYNC "send_synchro": SEND_SYNCHRO "receive_synchro": RECEIVE_SYNCHRO "read": READ "write": WRITE "ihm": IHM "condI": CONDI "condO": CONDO "explode": EXPLODE "implode": IMPLODE "synchro_constant": SYNCHRO_CONSTANT "cond_level": COND_LEVEL "schedule_dependences": SCHEDULE_DEPENDENCES "schedule_conditions": SCHEDULE_CONDITIONS
expr_list ::= [ [ expr_list_continue ] ]expr_list_continue ::= [ { expr COMMA } expr ]expr ::= [ NAME | VALUE | STRING | LPAR expr RPAR | expr PLUS expr | expr MINUS expr | expr TIMES expr | expr DIV expr | CEIL expr | MINUS expr | LLIST expr_list RLIST | BAR expr BAR ]reg_expr ::= expr
The entry point of the application is the file rule.
def_desc ::= [ [ DESCRIPTION COL STRING ] ]rfc_desc ::= [ [ STRING ] ]comment ::= COMMENTboolean ::= [ FALSE | TRUE ]int ::= VALinteger ::= [ [ MINUS ] int ]name_list ::= [ { NAME } ]rfc ::= [ NAME [ DIV NAME ] ]rfc_name ::= rfc DOT NAMErfc_name_list ::= [ { rfc_name } ]rfc_path ::= [ { BACKSLASH [ NAME ] } ]attachement_type ::= [ ATTACH_ALL | ATTACH_REF | ATTACH_CONDI | ATTACH_CONDO | ATTACH_EXPLODE | ATTACH_IMPLODE ]operation_attached ::= [ LDIM rfc_path ( RDIM | COMMA attachement_type RDIM ) ]operation_attached_list ::= [ { operation_attached } ]parameters_list ::= [ { NAME SCOL } NAME ]parameters ::= [ [ LARG parameters_list RARG ] ]values_list ::= [ { reg_expr SCOL } reg_expr ]values ::= [ [ LARG values_list RARG ] ]dimension ::= [ [ LDIM reg_expr RDIM ] ]range ::= [ [ LDIM reg_expr ( RDIM | DOT DOT reg_expr RDIM ) ] ]coord2d ::= integer COMMA integerperiod_port ::= [ [ int ] ]rfc_prd ::= [ [ int ] ]rank ::= [ [ int ] ]pos ::= [ [ AT coord2d ] ]dim_window ::= [ [ coord2d ] ]version ::= SYNDEX_VERSION COL STRINGcode_phase ::= [ INIT_SEQ | LOOP_SEQ | END_SEQ ]code_phase_list ::= [ { code_phase } ]code_phases ::= [ [ CODE_PHASES COL code_phase_list SCOL ] ]in_port ::= IN NAME dimension NAME rank pos SCOL period_portout_port ::= OUT NAME dimension NAME rank pos SCOL period_portinout_port ::= AND NAME dimension NAME rank pos SCOL period_portin_port_list ::= [ { in_port } ]out_port_list ::= [ { out_port } ]port_list ::= [ { ( in_port | out_port | inout_port ) } ]dpd_prt ::= [ NAME [ DOT NAME ] ]abstract ::= [ [ TRUE | FALSE ] ]dpd_rfc ::= NAMEdependence ::= [ ( STRONGPRECEDENCEDATA dpd_prt TO dpd_prt | WEAKPRECEDENCEDATA dpd_prt TO dpd_prt | PRECEDENCE dpd_rfc TO dpd_rfc | DATA dpd_prt TO dpd_prt ) SCOL ]dependence_list ::= [ { dependence } ]rep_prts ::= [ NAME BACKARROW NAME [ COMMA rep_prts ] ]rep ::= [ [ LDIM reg_expr ( RDIM | COL rep_prts RDIM ) ] ]reference ::= rfc values rep NAME pos rfc_desc rfc_prd abstract SCOLreference_list ::= [ { reference } ]condition_algo ::= [ [ boolean | NAME EQU integer ] ]condition ::= CONDITIONS COL condition_algo SCOLreferences ::= REFERENCES COL reference_listdependences ::= DEPENDANCES COL dependence_listcnd_rfcs_dpds ::= condition references dependencescnd_rfcs_dpds_list ::= [ { cnd_rfcs_dpds } ]internal ::= DEF INTERNAL NAME parameters COL port_listconstant ::= DEF CONSTANT NAME parameters dim_window COL out_port_list def_descsensor ::= DEF SENSOR NAME parameters dim_window COL out_port_list def_descactuator ::= DEF ACTUATOR NAME parameters dim_window COL in_port_list def_descdelay ::= DEF DELAY NAME range parameters dim_window COL port_list def_descalgorithm ::= DEF ALGORITHM NAME parameters dim_window COL port_list cnd_rfcs_dpds_list code_phases def_descalgo ::= [ internal | constant | sensor | actuator | delay | algorithm ]bus_type ::= [ ( SAMPP | SAMMP | RAM ) SCOL ]broadcast ::= [ [ BROADCAST | NOBROADCAST ] ]gate ::= GATE NAME NAME SCOLgate_list ::= [ { gate } ]duration ::= rfc EQU VAL SCOLdurations_list ::= [ { duration } ]gateref ::= NAME DOT NAMEoperatorref ::= rfc NAME pos SCOLoperatorref_list ::= [ { operatorref } ]mediumref ::= rfc NAME broadcast pos SCOLmediumref_list ::= [ { mediumref } ]connection ::= gateref NAME SCOLconnection_list ::= [ { connection } ]operators ::= OPERATORS COL operatorref_listmedia ::= MEDIA COL mediumref_listconnections ::= CONNECTIONS COL connection_listmain_operator ::= [ [ MAIN OPERATOR NAME SCOL ] ]operator ::= DEF OPERATOR NAME COL gate_list durations_list def_desc code_phasesmedium ::= DEF MEDIUM NAME COL bus_type durations_list def_descextra_durations_operator ::= EXTRA_DURATIONS_OPERATOR rfc COL durations_listextra_durations_medium ::= EXTRA_DURATIONS_MEDIUM rfc COL durations_listarchitecture ::= DEF ARCHITECTURE NAME dim_window COL operators main_operator media connections def_descarchi ::= [ operator | medium | extra_durations_operator | extra_durations_medium | architecture ]main ::= [ MAIN ( ALGORITHM rfc values SCOL | ARCHITECTURE rfc SCOL ) ]xsc_definition ::= [ ( XSC | OG ) NAME COL operation_attached_list SCOL ]operationonproc ::= CONSTRAINT COL rfc_path ON rfc_name_list SCOLabsoluteconstraint ::= ABSOLUTE CONSTRAINT COL NAME ON rfc_name_list SCOLrelativeconstraint_type ::= [ UNION | DISJUNCTION ]relativeconstraint ::= RELATIVE CONSTRAINT COL relativeconstraint_type name_list SCOLconstraints ::= [ operationonproc | absoluteconstraint | relativeconstraint ]description ::= APPLICATION def_desccalcul_path ::= [ [ DIV | calcul_path ] DIV NAME ]communication_name ::= [ { NAME COMMA } NAME ]string_path ::= [ [ DIV | string_path ] DIV NAME ]communication_path_not_repeated ::= [ DIV communication_name LPAR string_path DOT NAME RPAR ]communication_path ::= [ communication_path_not_repeated [ NAME ] ]operation_path ::= [ calcul_path | communication_path ]operator_list ::= [ { NAME COMMA } NAME ]receivers ::= LPAR operator_list RPARoperation_port ::= operation_path DOT NAMEcalcul_class ::= [ CONSTANT | SENSOR | ACTUATOR | DELAY | ALGORITHM | INTERNAL ]communication_class ::= [ WRITE NAME operation_port | READ NAME operation_port | SEND NAME receivers operation_port | RECEIVE NAME receivers NAME operation_port | SYNC NAME receivers NAME operation_port | SEND_SYNCHRO NAME NAME | RECEIVE_SYNCHRO NAME NAME ]opn_class ::= [ CALCUL calcul_class rfc | COMMUNICATION communication_class ]origin ::= [ ( IHM | CONDI | CONDO | EXPLODE | IMPLODE | SYNCHRO_CONSTANT ) operation_path ]opn_title ::= opn_class values LPAR origin RPAR SCOLoperator_class ::= [ ( OPERATOR | MEDIUM ) NAME ]rank_on_operator ::= integerstart_date ::= VALadequation_order ::= integerschedule_place ::= SCHEDULED COL operator_class rank_on_operator start_date adequation_orderadeq_condition ::= operation_port EQU integeradeq_cond_list ::= [ { adeq_condition AND } adeq_condition ]adeq_conditions ::= [ CONDITIONS COL ( boolean | adeq_cond_list ) ]dir ::= [ IN | OUT | AND ]port_class ::= [ DATA | PRECEDENCE | DELAY | CONDITION_SYNCHRO ]adeq_port ::= dir NAME LDIM int RDIM NAME port_class integer period_port SCOLadeq_port_list ::= [ { adeq_port } ]adeq_ports ::= PORTS COL adeq_port_listadeq_dependence ::= [ ( STRONGPRECEDENCEDATA COND_LEVEL EQU int operation_port TO operation_port | STRONGPRECEDENCEDATA operation_port TO operation_port | PRECEDENCE operation_path TO operation_path ) adeq_conditions SCOL ]adeq_dpd_list ::= [ { adeq_dependence } ]adeq_dpds ::= SCHEDULE_DEPENDENCES COL adeq_dpd_listoperation_condition ::= operation_path adeq_conditionsoperation_condition_list ::= [ { operation_condition } ]adeq_operations_conditions ::= SCHEDULE_CONDITIONS operation_condition_listoperation_scheduled ::= OPERATION_SCHEDULED operation_path COL opn_title schedule_place adeq_portsschedules ::= SCHEDULES COLcommand ::= [ version | description | algo | archi | main | schedules | operation_scheduled | adeq_dpds | adeq_operations_conditions | xsc_definition | constraints | comment ]command_list ::= [ { command } ]fileinclude ::= INCLUDE STRING SCOLfile ::= [ command_list ( fileinclude ) ]
Ce document a été traduit de LATEX par HEVEA