Sei sulla pagina 1di 8

MetaEdit+

MERL

Ander Zubizarreta
MERL

• MetaEdit+ Reporting Language


• Es el lenguaje propietario que se utiliza en
MetaEdit+ para definir generadores de código
• Dispone de comandos para navegar sobre los
modelos y extraer la información
MERL
Acceso a los elementos del modelo
- :property local name; levelNumber;
- .object type name;
- >relationship type name;
- ~role type name;
- #port type name;
Podemos acceder a todos los tipos de un metatipo poniendo () en
vez del nombre, o solo algunos, poniendo los nombres entre
los parentesis. Ejemplo:
.()  para acceder a todos los objetos
.( Input | Output)  para acceder a los objetos de estos
tipos
MERL
Comandos generales
• report ‘generator_name’  Comienzo de la definición del generador
• endreport  Final de la definición del generador
• /* coments */  Los comentarios pueden ser de varias lineas
• newline  Salto de linea
• ‘string content’  Los string van entre comillas simples
• type  escribe el nombre del tipo del elemento actual
• id  escribe el identificador del elemento actual
• oid  escribe el identificador único del objeto
• projectid  escribe el número identificador del proyecto del elemento actual
• objectid  escribe el número identificador del objeto del elemento actual
• project  escribe el nombre del proyecto del elemento actual
• metatype escribe el metatipo del elemento actual
• stack
• decompositions  escribe el nombre del grafo de descomposicion del elemento actual
• explosions  escribe los nombres de los grafos de explosion del elemento actual
MERL
Control y navegación
• If conditon then then_body else else_body endif
• Foreach type_arg where condition orderby criteria unique criteria { body }
• Do type_arg { body }
• Dowhile type_arg { body }
• Subreport generator_name_arg run
MERL
Comandos externos I/O
• filename filename_commands append body close
• filename filename_commands merge … md5id id_arg md5block body md5sum … close
• filename filename_commands print
• filename filename_commands read
• filename filename_commands write body close
• external command execute
• external command executeblocking
• internal command execute
• sep  escribe el separador (‘\’ en windows, ‘/’ en unix)
• prompt prompt_arg ask
MERL
Strings & numbers
• variable variable_name_arg write body close
• variable variable_name_arg append body close
• variable variable_name_arg read
• $variable_name
• to rules_or_translator_name translate body endto
• simple_command%translator_name
• math expression evaluate
MERL
Representation
• x  ecribe la coordenada x del elemento
• y  escribe la coordenada y del elemento
• left  escribe la coordenada izquierda del elemento
• right  escribe la coordenada derecha del elementeo
• centerx  escribe la coordenada x del centro de un elemento
• centery  escribe la coordenada y del centro de un elemento
• width  escribe la anchura de un elemento
• height  escribe la altura de un elemento
• containers
• contents

Potrebbero piacerti anche