Copyright 2009-2010, Daniel Grunwald Portions (arden.scc) Copyright 2004, University of British Columbia See LICENSE.txt for licensing information. To compile the compiler, you first need to generate the parser using the SableCC parser generator. To do this, run "java -classpath ../tools/sablecc.jar org.sablecc.sablecc.SableCC arden.scc" in the arden2bytecode/src directory. This will create the directories "analysis","lexer","node","parser" within arden2bytecode/src/arden. When the input grammar is changed, you will need to re-generate the parser. Before regenerating the parser, you should delete the old "analysis","lexer", "node","parser" directories to ensure there aren't any old files left behind. To configure SableCC as external tool in Eclipse: 1. Create an external tool configuration: Location: javaw.exe (from your Java runtime) Working directory: ${container_loc} Arguments: -classpath ${project_loc}\tools\sablecc.jar org.sablecc.sablecc.SableCC ${resource_name} 2. Select the file "arden.scc" and run SableCC. 3. Right-click "src" and press Refresh so that Eclipse loads the generated files. I believe this compiler fully implements Arden Syntax 2.5 with the following exceptions: Languages features not implemented: From Arden Syntax 2.1 specification: 10.2.4.6 Event Call 11.2.2 Event Statement 13 Evoke Slot From Arden Syntax 2.5 specification: 11.2.5.2 Message As statement 11.2.5.6 Destination As statement A6.2 "Time of" always returns null for objects. (correct would be: if all attributes of an object share a common primary time, the time of operator will return that time when applied to the object) Timezones for ArdenTime values. Some string formatting specificiers are not implemented. There is no way to use Arden variables within mapping clauses. Citation/links slots are not syntax checked. The compiler does not check that no languages features newer than the specified 'Arden Version' are used.