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

io.joern.fuzzyc2cpg.ast.declarations.IdentifierDecl Maven / Gradle / Ivy

There is a newer version: 1.1.911
Show newest version
package io.joern.fuzzyc2cpg.ast.declarations;

import io.joern.fuzzyc2cpg.ast.AstNode;
import io.joern.fuzzyc2cpg.ast.expressions.AssignmentExpression;
import io.joern.fuzzyc2cpg.ast.expressions.Identifier;
import io.joern.fuzzyc2cpg.ast.walking.ASTNodeVisitor;

public class IdentifierDecl extends AstNode {

  private IdentifierDeclType type;
  private Identifier name;
  private AssignmentExpression assignment;
  private boolean isTypedef = false;

  public void addChild(AstNode node) {
    if (node instanceof Identifier) {
      if (name == null) {
        setName((Identifier) node);
      }
    } else if (node instanceof IdentifierDeclType) {
      setType((IdentifierDeclType) node);
    } else if (node instanceof AssignmentExpression) {
      setAssignment((AssignmentExpression)node);
    }

    super.addChild(node);
  }

  public Identifier getName() {
    return name;
  }

  private void setName(Identifier name) {
    this.name = name;
  }

  public IdentifierDeclType getType() {
    return type;
  }

  private void setType(IdentifierDeclType type) {
    this.type = type;
  }

  public AssignmentExpression getAssignment() {
    return this.assignment;
  }

  private void setAssignment(AssignmentExpression assignment) {
    this.assignment = assignment;
  }

  public void setIsTypedef(boolean value) {
    isTypedef = value;
  }

  public boolean isTypedef() {
    return isTypedef;
  }

  public void accept(ASTNodeVisitor visitor) {
    visitor.visit(this);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy