All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.jena.sparql.sse.lang.ParseHandlerDebug Maven / Gradle / Ivy

There is a newer version: 5.1.0
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.jena.sparql.sse.lang;

import org.apache.jena.sparql.sse.Item ;


/** Tracing parser handler - logs what the core parse sees */ 

public class ParseHandlerDebug implements ParseHandler
{
    int count = 0 ;
    
    private void indent()
    {
        for ( int i = 0 ; i < count ; i++ ) System.out.print("  ") ;
    }

    private void start(int line, int column)
    { 
        System.out.print("["+line+", "+column+"]  ") ; 
        indent() ;
    }

    @Override
    public Item getItem()       { return null ; }
    
    @Override
    public void parseStart()
    { System.out.println("<<<<") ; }

    @Override
    public void parseFinish()
    { System.out.println(">>>>") ; }

    @Override
    public void listStart(int line, int column)
    { 
        start(line, column) ;
        count++ ;
        System.out.println("(") ;
    }

    @Override
    public void listFinish(int line, int column)
    {
        count-- ;         
        start(line, column) ;
        System.out.println(")") ;
    }



    @Override
    public void emitBNode(int line, int column, String label)
    { 
        start(line, column) ;
        System.out.println("BNode: "+label) ;
    }


    @Override
    public void emitIRI(int line, int column, String iriStr)
    { 
        start(line, column) ;
        System.out.println("IRI: "+iriStr) ;
    }

    @Override
    public void emitLiteral(int line, int column, String lex, String lang, String datatype_iri, String datatype_pn)
    { 
        start(line, column) ;
        if ( lang != null )
            System.out.println("Literal: "+lex+" @"+lang) ;
        else if ( datatype_iri != null )
            System.out.println("Literal: "+lex+" ^^"+datatype_iri) ;
        else if ( datatype_pn != null )
            System.out.println("Literal: "+lex+" ^^"+datatype_pn) ;
    }

    @Override
    public void emitPName(int line, int column, String pname)
    { 
        start(line, column) ;
        System.out.println("PName: "+pname) ;
    }

    @Override
    public void emitSymbol(int line, int column, String symbol)
    { 
        start(line, column) ;
        System.out.println("Symbol: "+symbol) ;
    }

    @Override
    public void emitVar(int line, int column, String varName)
    { 
        start(line, column) ;
        System.out.println("Var: "+varName) ;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy