程序包 org.beetl.core

类 ProgramBuilderContext

java.lang.Object
org.beetl.core.ProgramBuilderContext
直接已知子类:
DebugProgramBuilderContext

public class ProgramBuilderContext extends Object
结合AntlrProgramBuilder 将模板生成Program,该类负责记录变量定义的位置和出现的位置
作者:
xiandafu
  • 字段详细资料

  • 构造器详细资料

    • ProgramBuilderContext

      public ProgramBuilderContext()
  • 方法详细资料

    • enterBlock

      public void enterBlock(org.antlr.v4.runtime.ParserRuleContext ruleContext)
      进入一个scope
    • exitBlock

      public void exitBlock(Statement statement)
    • addVarAndPostion

      public void addVarAndPostion(ASTNode first)
    • addRootVarAdnPosition

      public boolean addRootVarAdnPosition(ASTNode first)
      动态添加一个顶级变量
    • searchVar

      public ASTNode searchVar(BlockEnvContext ctx, String name)
      自上向下查找
    • addVar

      public VarDescription addVar(ASTNode varNode)
      在当前context定义变量
    • contain

      public ASTNode contain(String varName)
    • setVarAttr

      public void setVarAttr(String varName, String attrName)
      变量属性,展示没用上,本来想用在ide属性提示,但ide插件门槛太高了,搞不定
    • setVarPosition

      public void setVarPosition(String varName, ASTNode where)
    • hasDefined

      protected GrammarToken hasDefined(String varName)
    • findVar

      protected VarDescription findVar(String varName)
    • setNodeEvalObject

      public int setNodeEvalObject(Object o)
    • anzlyszeGlobal

      public void anzlyszeGlobal()
    • varIndexPoint

      protected void varIndexPoint(BlockEnvContext blockEnvContext, VarDescription vd, int index)
    • anzlyszeLocal

      public void anzlyszeLocal()
    • anzlysze

      protected void anzlysze(BlockEnvContext block, int nextIndex, boolean isRoot)
    • newBlockEnvContext

      public BlockEnvContext newBlockEnvContext()
    • newVarDescription

      public VarDescription newVarDescription()