В текущия ми проект моят шеф е възложил работа за изразяване на граматика (написана на ANTLR) на специфичен за домейн език във формален език/нотации. Например, следното е малък кодов фрагмент от граматика.
vocabSpec : 'resources' ':' resources_def ; // Resource definition
resources_def :
'sensors' ':' (sensor_def)+ // Sensor definition
'actuators' ':' (actuator_def)+ // Actuator definition
;
sensor_def:
CAPITALIZED_ID
(sensorMeasurement_def ';')* ;
sensorMeasurement_def : 'generate' lc_id ':' CAPITALIZED_ID ;
// Actuator definition : Actuator name, actions and its parameters
actuator_def: CAPITALIZED_ID (action_def ';')* ;
action_def: 'action' CAPITALIZED_ID '(' (parameter_def)? ')' ;
parameter_def : lc_id ':' CAPITALIZED_ID (',' parameter_def )? ;
lc_id: ID ;
ID : 'a'..'z' ('a'..'z' | 'A'..'Z' )* ;
CAPITALIZED_ID: 'A'..'Z' ('a'..'z' | 'A'..'Z' )*;
Доколкото ми е известно, граматиката на ANTLR на всеки език сама по себе си е формална спецификация. Нямам представа - как мога да уточня, че тази граматика е формален начин. Бихте ли ми дали указания за записване на горната граматика във формална спецификация/математически нотации?