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

com.devsmart.microdb.SemPass2 Maven / Gradle / Ivy

package com.devsmart.microdb;


import com.devsmart.microdb.ast.Nodes;

public class SemPass2 extends MicroDBBaseVisitor {

    private final CompilerContext mContext;
    private String mCurrentPackage;

    public SemPass2(CompilerContext ctx) {
        mContext = ctx;
    }

    @Override
    public Void visitHeader(MicroDBParser.HeaderContext ctx) {
        mCurrentPackage = ctx.packageName().getText();

        return super.visitHeader(ctx);
    }

    @Override
    public Void visitObjType(MicroDBParser.ObjTypeContext ctx) {
        Nodes.ObjType objNode = (Nodes.ObjType) mContext.nodeMap.get(ctx);

        final int doti = objNode.mClassName.lastIndexOf('.');
        if(doti > 0) {
            objNode.mPackageName = objNode.mClassName.substring(0, doti);
            objNode.mSimpleName = objNode.mClassName.substring(doti+1);
        } else {
            objNode.mPackageName = mCurrentPackage;
            objNode.mSimpleName = objNode.mClassName;
        }

        return super.visitObjType(ctx);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy