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

io.joern.fuzzyc2cpg.parser.shared.InitDeclContextWrapper Maven / Gradle / Ivy

There is a newer version: 1.1.911
Show newest version
package io.joern.fuzzyc2cpg.parser.shared;

import io.joern.fuzzyc2cpg.FunctionParser;
import io.joern.fuzzyc2cpg.ModuleParser;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.tree.ParseTree;

public class InitDeclContextWrapper {

  ModuleParser.DeclaratorContext ctxCodeSensor = null;
  FunctionParser.DeclaratorContext ctxFine = null;
  int contextInUse;

  public InitDeclContextWrapper(ModuleParser.DeclaratorContext ctx) {
    ctxCodeSensor = ctx;
    contextInUse = 0;
  }

  public InitDeclContextWrapper(FunctionParser.DeclaratorContext ctx) {
    ctxFine = ctx;
    contextInUse = 2;
  }

  public InitDeclContextWrapper(ParseTree objToWrap) {
    if (objToWrap instanceof ModuleParser.Init_declaratorContext) {
      ctxCodeSensor = (ModuleParser.DeclaratorContext) objToWrap
          .getChild(0);
      contextInUse = 0;
    } else if (objToWrap instanceof FunctionParser.Init_declaratorContext) {
      ctxFine = (FunctionParser.DeclaratorContext) objToWrap.getChild(0);
      contextInUse = 2;
    }
  }

  public ParserRuleContext getWrappedObject() {
    switch (contextInUse) {
      case 0:
        return ctxCodeSensor;
      case 2:
        return ctxFine;
    }
    return null;
  }

  public ParserRuleContext ptrs() {
    switch (contextInUse) {
      case 0:
        return ctxCodeSensor.ptrs();
      case 2:
        return ctxFine.ptrs();
    }
    return null;
  }

  public ParserRuleContext func_ptrs() {
    switch (contextInUse) {
      case 0:
        return ctxCodeSensor.func_ptrs();
      case 2:
        return ctxFine.func_ptrs();
    }
    return null;
  }

  public ParserRuleContext type_suffix() {
    switch (contextInUse) {
      case 0:
        return ctxCodeSensor.type_suffix();
      case 2:
        return ctxFine.type_suffix();
    }
    return null;
  }

  public ParserRuleContext identifier() {
    switch (contextInUse) {
      case 0:
        return ctxCodeSensor.identifier();
      case 2:
        return ctxFine.identifier();
    }
    return null;
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy