/**
 * <copyright>
 *
 * Copyright (c) 2011 E.D.Willink and others.
 * All rights reserved.   This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *   E.D.Willink - Initial API and implementation
 *
 * </copyright>
 *
 * $Id: OCLStates.xtext,v 1.1 2011/03/15 07:51:54 ewillink Exp $
 */
grammar org.eclipse.ocl.tutorial.eclipsecon2011.OCLStates with org.eclipse.xtext.common.Terminals

import "platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.oclstates/model/OCLStates.ecore"

Module:
	'module' name=STRING
	(machines+=Statemachine)*
;

Statemachine:
	(initial?='initial')? 'statemachine' name=ID ('value' value=INT)? '{'
	'events' (events+=Event)* ';'
	(states+=State)* '}'
;

Event:
	name=ID;

State: SimpleState | CompoundState;

SimpleState:
	(initial?='initial')? 'state' name=ID ('value' value=INT)?
	'{' (transitions+=Transition)* '}'
;

CompoundState:
	'compound' (initial?='initial')? 'state' name=ID
	'machine' machine=[Statemachine]
	'{' (transitions+=Transition)* '}'
;

Transition:
	event=[Event] '=>' state=[State]
;
