private Item intern(Item item) { if ( item.sameSymbol(ANY.getSymbol()) ) return ANY ; if ( item.sameSymbol(VAR.getSymbol()) ) return VAR ; if ( item.sameSymbol(TERM.getSymbol()) ) return TERM ; if ( item.sameSymbol(URI.getSymbol()) ) return URI ; if ( item.sameSymbol(LITERAL.getSymbol()) ) return LITERAL ; if ( item.sameSymbol(BNODE.getSymbol()) ) return BNODE ; return item ; }
static long modInt(Item item) { if ( "_".equals(item.getSymbol()) ) return P_Mod.UNSET ; return BuilderNode.buildLong(item) ; }
public boolean sameSymbol(String symbolStr) { return isSymbol() && getSymbol().equalsIgnoreCase(symbolStr) ; }
@Override public void visit(Item item, String symbol) { result = ( other.isSymbol() && other.getSymbol().equals(symbol) ) ; }
public static String buildSymbol(Item item) { if ( !item.isSymbol() ) BuilderLib.broken(item, "Not a symbol", item) ; return item.getSymbol() ; }
public boolean sameSymbol(Item item) { if ( item.isSymbol() ) return sameSymbol(item.getSymbol()) ; return false ; }
public String sniff() { if ( ! isTaggable() ) return null ; return getList().get(0).getSymbol() ; }
@Override public Op make(ItemList list) { // 0 is the "ext" String subtag = list.get(1).getSymbol() ; list = list.sublist(2) ; return buildExt(subtag, list) ; } }
@Override public Op make(ItemList list) { String subtag = list.get(0).getSymbol() ; list = list.sublist(1) ; return buildExt(subtag, list) ; } }
private Op build(ItemList list) { Item head = list.get(0) ; String tag = head.getSymbol() ; Build bob = findBuild(tag) ; if ( bob != null ) return bob.make(list) ; else BuilderLib.broken(head, "Unrecognized algebra operation: "+tag) ; return null ; }
public long asInteger() { if ( isNode() ) { if ( getNode().isLiteral() ) // Ignore typing. return Integer.parseInt(getNode().getLiteralLexicalForm()) ; } if ( isSymbol() ) return Integer.parseInt(getSymbol()) ; throw new ItemException("Not a literal or string: "+this) ; }
public Item transform(ItemTransform transformer) { // transformations keep the list structure // if ( isList() ) // return transformer.transform(this, getList()) ; // else if ( isNode() ) return transformer.transform(this, getNode()) ; else if ( isSymbol() ) return transformer.transform(this, getSymbol()) ; else System.err.println("broken item") ; return null ; }
private static String parseSymbol(Reader reader, PrefixMapping pmap) { Item item = parseTerm(reader, pmap) ; if ( ! item.isSymbol() ) throw new SSEParseException("Not a symbol: "+item, item.getLine(), item.getColumn()) ; return item.getSymbol() ; }
public String shortString() { if ( isSymbol() ) return getSymbol(); if ( isNode() ) return FmtUtils.stringForNode(getNode()); return getList().shortString() ; } }
private static Node parseNode(Reader reader, PrefixMapping pmap) { Item item = parseTerm(reader, pmap) ; if ( item.isSymbol() ) { String str = item.getSymbol() ; if ( "true".equalsIgnoreCase(str) ) return NodeConst.nodeTrue ; if ( "false".equalsIgnoreCase(str) ) return NodeConst.nodeFalse ; throw new SSEParseException("Not a node: "+item, item.getLine(), item.getColumn()) ; } if ( ! item.isNode() ) throw new SSEParseException("Not a node: "+item, item.getLine(), item.getColumn()) ; return item.getNode() ; }
private Path build(ItemList list) { Item head = list.get(0) ; if ( !head.isSymbol() ) return build(head) ; String tag = head.getSymbol() ; Build bob = findBuild(tag) ; if ( bob != null ) return bob.make(list) ; else BuilderLib.broken(head, "Unrecognized path operation: "+tag) ; return null ; }
public void visit(ItemVisitor visitor) { if ( isList() ) visitor.visit(this, getList()) ; else if ( isNode() ) visitor.visit(this, getNode()) ; else if ( isSymbol() ) visitor.visit(this, getSymbol()) ; else if ( isNil() ) visitor.visitNil() ; else System.err.println("broken item") ; }
protected Expr buildKnownFunction(ItemList list) { if ( list.size() == 0 ) BuilderLib.broken(list, "Empty list for expression") ; Item item = list.get(0) ; String tag = item.getSymbol() ; if ( tag == null ) BuilderLib.broken(item, "Null tag") ; Build b = findBuild(tag) ; if ( b == null ) BuilderLib.broken(item, "No known symbol for "+tag) ; return b.make(list) ; }
private void testSymbol(String str) { Item item = parse(str) ; assertTrue(item.isSymbol()) ; assertEquals(item.getSymbol(), str) ; }