ix.iface.domain
Class LTF_Parser
java.lang.Object
|
+--ix.iface.domain.DomainParser
|
+--ix.iface.domain.LTF_Parser
- All Implemented Interfaces:
- LTF_Symbols
- public class LTF_Parser
- extends DomainParser
- implements LTF_Symbols
A parser for domains described in a Lisp-like syntax.
The parser parses a file of refinement definitions to populate
a Domain.
In the syntax definitions below, upper-case names are literals
and lower-case names are syntactic variables. The literals
can be written in either case in domain definitions.
(REFINEMENT name pattern clause*)
name ::= symbol | string
pattern ::= (item*)
item ::= number | symbol | string | pattern | variable
variable ::= ?symbol
clause ::= (ISSUES issue*)
| (NODES node*)
| (ORDERINGS ordering*)
| (CONSTRAINTS constraint*)
issue ::= (ISSUE pattern)
node ::= (node-id pattern)
ordering ::= ({node-id | (node-id*)}*)
constraint ::= (WORLD-STATE CONDITION pattern = value)
| (WORLD-STATE EFFECT pattern = value)
value ::= item
- See Also:
Domain
,
expandAllOrderings(LList)
Methods inherited from class java.lang.Object |
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
filename
protected java.lang.String filename
lin
protected LispReader lin
lastRead
protected java.lang.Object lastRead
parsers
protected MatchTable parsers
LTF_Parser
public LTF_Parser(java.lang.String filename)
throws java.io.FileNotFoundException
LTF_Parser
public LTF_Parser(java.io.File file)
throws java.io.FileNotFoundException
LTF_Parser
public LTF_Parser()
readDomain
public Domain readDomain()
- Overrides:
readDomain
in class DomainParser
readDomain
public Domain readDomain(Domain dom)
- Overrides:
readDomain
in class DomainParser
syntaxError
protected void syntaxError(java.lang.String message)
makeRefinement
public Refinement makeRefinement(LList def)
makeNodes
public LList makeNodes(LList items)
makeOrderings
public LList makeOrderings(LList items)
makeConstraints
public LList makeConstraints(LList items)
makeIssues
public LList makeIssues(LList items)
expandAllOrderings
public static LList expandAllOrderings(LList orderings)
- Expands a list of orderings into a list of simple orderings.
Each simple ordering is a pair of node ids: (before after).
Each ordering is a list representing a sequence. Consider
adjacent elements A and B in such a list. Each node in A is
linked before each node in B. For example, (1 (2 3) 4) is
equivalent to the four separate lists (1 2), (1 3), (2 4), (3 4).
expandOrdering
public static LList expandOrdering(LList ordering)
expandOrderPair
static LList expandOrderPair(java.lang.Object left,
java.lang.Object right)
ensureList
static LList ensureList(java.lang.Object a)
parseConstraint
public Constraint parseConstraint(java.lang.Object spec)
addConstraintParsers
protected void addConstraintParsers()