Aggregates: First, Second with Third

Redirects: First => Second, Third => Fourth

Jolie: "logger.ol" in LoggerService

log@LoggerService( new )();
println @ Console( "none" )()

outputPort OutputPort3 {
    location: "socket://localhost:9002/"
    protocol: sodep
    interfaces: Interface3
}

interface MyInterface {
OneWay:
    myOW( string )
RequestResponse:
    myRR( string )( string )
}

private service MainService {
    embed ConfigurationService( ) as Conf
    main {
        getDBConn@Conf( )( res )
    }
}

----------------------------------------------------

[
	["property", "Aggregates"],
	["punctuation", ":"],
	["aggregates", [
		["class-name", "First"],
		["punctuation", ","],
		["class-name", "Second"],
		["keyword", "with"],
		["class-name", "Third"]
	]],

	["property", "Redirects"],
	["punctuation", ":"],
	["redirects", [
		["class-name", "First"],
		["operator", "=>"],
		["class-name", "Second"],
		["punctuation", ","],
		["class-name", "Third"],
		["operator", "=>"],
		["class-name", "Fourth"]
	]],

	["property", "Jolie"],
	["punctuation", ":"],
	["string", "\"logger.ol\""],
	["keyword", "in"],
	["class-name", "LoggerService"],

	["function", "log"],
	["operator", "@"],
	["class-name", "LoggerService"],
	["punctuation", "("],
	["keyword", "new"],
	["punctuation", ")"],
	["punctuation", "("],
	["punctuation", ")"],
	["punctuation", ";"],

	["function", "println"],
	["operator", "@"],
	["class-name", "Console"],
	["punctuation", "("],
	["string", "\"none\""],
	["punctuation", ")"],
	["punctuation", "("],
	["punctuation", ")"],

	["keyword", "outputPort"],
	["class-name", "OutputPort3"],
	["punctuation", "{"],

	["property", "location"],
	["punctuation", ":"],
	["string", "\"socket://localhost:9002/\""],

	["property", "protocol"],
	["punctuation", ":"],
	" sodep\r\n    ",

	["property", "interfaces"],
	["punctuation", ":"],
	" Interface3\r\n",

	["punctuation", "}"],

	["keyword", "interface"],
	" MyInterface ",
	["punctuation", "{"],

	["property", "OneWay"],
	["punctuation", ":"],

	["function", "myOW"],
	["punctuation", "("],
	["builtin", "string"],
	["punctuation", ")"],

	["property", "RequestResponse"],
	["punctuation", ":"],

	["function", "myRR"],
	["punctuation", "("],
	["builtin", "string"],
	["punctuation", ")"],
	["punctuation", "("],
	["builtin", "string"],
	["punctuation", ")"],

	["punctuation", "}"],

	["keyword", "private"],
	["keyword", "service"],
	["class-name", "MainService"],
	["punctuation", "{"],

	["keyword", "embed"],
	["class-name", "ConfigurationService"],
	["punctuation", "("],
	["punctuation", ")"],
	["keyword", "as"],
	["class-name", "Conf"],

	["keyword", "main"],
	["punctuation", "{"],

	["function", "getDBConn"],
	["operator", "@"],
	["class-name", "Conf"],
	["punctuation", "("],
	["punctuation", ")"],
	["punctuation", "("],
	" res ",
	["punctuation", ")"],

	["punctuation", "}"],

	["punctuation", "}"]
]

----------------------------------------------------

Checks for outputPorts and Aggregates and Redirect constructs.
