---input---
##################
# A sample graph
##################

import some-definition.graph;
import another-definition.graph;

VM {
	installer : target;
	children: deployable;
}

facet deployable {
	# nothing
}

# Sample deployables
mysql {
	insTaller: puppet;
	facets: deployable;
	exports: ip, port = 3306;
}

tomcat {
	installer: bash;
	facets: deployable;
	exports: ip;
	children: web-application;
}

facet web-application {
	exports: full-path = undefined;
}

my-war-1 {
	facets: web-application;
	installer: file;
	exports: full-path = apps/my-war-1;	# the relative path
	imports: mysql.*;
}

---tokens---
'##################\n' Comment

'# A sample graph\n' Comment

'##################\n' Comment

'\n'          Text

'import '     Keyword
's'           Text
'o'           Text
'm'           Text
'e'           Text
'-'           Text
'd'           Text
'e'           Text
'f'           Text
'i'           Text
'n'           Text
'i'           Text
't'           Text
'i'           Text
'o'           Text
'n'           Text
'.'           Text
'g'           Text
'r'           Text
'a'           Text
'p'           Text
'h'           Text
';'           Text
'\n'          Text

'import '     Keyword
'a'           Text
'n'           Text
'o'           Text
't'           Text
'h'           Text
'e'           Text
'r'           Text
'-'           Text
'd'           Text
'e'           Text
'f'           Text
'i'           Text
'n'           Text
'i'           Text
't'           Text
'i'           Text
'o'           Text
'n'           Text
'.'           Text
'g'           Text
'r'           Text
'a'           Text
'p'           Text
'h'           Text
';'           Text
'\n\n'        Text

'V'           Text
'M'           Text
' '           Text
'{'           Text
'\n\t'        Text
'installer :' Name
' '           Text
't'           Text
'a'           Text
'r'           Text
'g'           Text
'e'           Text
't'           Text
';'           Text
'\n\t'        Text
'children:'   Name
' '           Text
'd'           Text
'e'           Text
'p'           Text
'l'           Text
'o'           Text
'y'           Text
'a'           Text
'b'           Text
'l'           Text
'e'           Text
';'           Text
'\n'          Text

'}'           Text
'\n\n'        Text

'facet '      Keyword
'd'           Text
'e'           Text
'p'           Text
'l'           Text
'o'           Text
'y'           Text
'a'           Text
'b'           Text
'l'           Text
'e'           Text
' '           Text
'{'           Text
'\n\t'        Text
'# nothing\n' Comment

'}'           Text
'\n\n'        Text

'# Sample deployables\n' Comment

'm'           Text
'y'           Text
's'           Text
'q'           Text
'l'           Text
' '           Text
'{'           Text
'\n\t'        Text
'insTaller:'  Name
' '           Text
'p'           Text
'u'           Text
'p'           Text
'p'           Text
'e'           Text
't'           Text
';'           Text
'\n\t'        Text
'facets:'     Name
' '           Text
'd'           Text
'e'           Text
'p'           Text
'l'           Text
'o'           Text
'y'           Text
'a'           Text
'b'           Text
'l'           Text
'e'           Text
';'           Text
'\n\t'        Text
'exports:'    Name
' '           Text
'i'           Text
'p'           Text
','           Text
' '           Text
'p'           Text
'o'           Text
'r'           Text
't'           Text
' '           Text
'='           Operator
' '           Text
'3'           Text
'3'           Text
'0'           Text
'6'           Text
';'           Text
'\n'          Text

'}'           Text
'\n\n'        Text

't'           Text
'o'           Text
'm'           Text
'c'           Text
'a'           Text
't'           Text
' '           Text
'{'           Text
'\n\t'        Text
'installer:'  Name
' '           Text
'b'           Text
'a'           Text
's'           Text
'h'           Text
';'           Text
'\n\t'        Text
'facets:'     Name
' '           Text
'd'           Text
'e'           Text
'p'           Text
'l'           Text
'o'           Text
'y'           Text
'a'           Text
'b'           Text
'l'           Text
'e'           Text
';'           Text
'\n\t'        Text
'exports:'    Name
' '           Text
'i'           Text
'p'           Text
';'           Text
'\n\t'        Text
'children:'   Name
' '           Text
'w'           Text
'e'           Text
'b'           Text
'-'           Text
'a'           Text
'p'           Text
'p'           Text
'l'           Text
'i'           Text
'c'           Text
'a'           Text
't'           Text
'i'           Text
'o'           Text
'n'           Text
';'           Text
'\n'          Text

'}'           Text
'\n\n'        Text

'facet '      Keyword
'w'           Text
'e'           Text
'b'           Text
'-'           Text
'a'           Text
'p'           Text
'p'           Text
'l'           Text
'i'           Text
'c'           Text
'a'           Text
't'           Text
'i'           Text
'o'           Text
'n'           Text
' '           Text
'{'           Text
'\n\t'        Text
'exports:'    Name
' '           Text
'f'           Text
'u'           Text
'l'           Text
'l'           Text
'-'           Text
'p'           Text
'a'           Text
't'           Text
'h'           Text
' '           Text
'='           Operator
' '           Text
'u'           Text
'n'           Text
'd'           Text
'e'           Text
'f'           Text
'i'           Text
'n'           Text
'e'           Text
'd'           Text
';'           Text
'\n'          Text

'}'           Text
'\n\n'        Text

'm'           Text
'y'           Text
'-'           Text
'w'           Text
'a'           Text
'r'           Text
'-'           Text
'1'           Text
' '           Text
'{'           Text
'\n\t'        Text
'facets:'     Name
' '           Text
'w'           Text
'e'           Text
'b'           Text
'-'           Text
'a'           Text
'p'           Text
'p'           Text
'l'           Text
'i'           Text
'c'           Text
'a'           Text
't'           Text
'i'           Text
'o'           Text
'n'           Text
';'           Text
'\n\t'        Text
'installer:'  Name
' '           Text
'f'           Text
'i'           Text
'l'           Text
'e'           Text
';'           Text
'\n\t'        Text
'exports:'    Name
' '           Text
'f'           Text
'u'           Text
'l'           Text
'l'           Text
'-'           Text
'p'           Text
'a'           Text
't'           Text
'h'           Text
' '           Text
'='           Operator
' '           Text
'a'           Text
'p'           Text
'p'           Text
's'           Text
'/'           Text
'm'           Text
'y'           Text
'-'           Text
'w'           Text
'a'           Text
'r'           Text
'-'           Text
'1'           Text
';'           Text
'\t'          Text
'# the relative path\n' Comment

'\t'          Text
'imports:'    Name
' '           Text
'm'           Text
'y'           Text
's'           Text
'q'           Text
'l'           Text
'.'           Text
'*'           Text
';'           Text
'\n'          Text

'}'           Text
'\n'          Text
