1. 概念

    给定一个语言,定义他的文法的一个表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子

2. 案例

    

package org.demo.interprerted.demo01;

import java.util.ArrayList;
import java.util.List;

/**
 * 
 */



class Context{
    private String content ;
    private List<Expression> list = new ArrayList<Expression>() ;
    public void setContent(String content){
        this.content = content ;
    }
    public String getContent(){
        return this.content ;
    }
    public void add(Expression eps){
        list.add(eps) ;
    }
    public List<Expression> getList() {
        return list;
    }
    
}

abstract class Expression{
    abstract void interpret(Context ctx) ;  //interpret 解析
}

class AdvanceExpression extends Expression{
    @Override
    void interpret(Context ctx) {
        System.out.println("这是高级解析器!");
    }
}

class SimpleExpression extends Expression { 
    void interpret(Context ctx) {
        System.out.println("这是普通解析器!"); 
        } 
    }

public class InterpretedDemo01 {
    public static void main(String[] args) {
        Context ctx = new Context() ;
        ctx.add(new SimpleExpression()) ;
        ctx.add(new AdvanceExpression()) ;
        ctx.add(new SimpleExpression()) ;
        
        for(Expression eps : ctx.getList()){
          eps.interpret(ctx) ;
        }
    }
}

 

相关文章:

  • 2021-04-11
  • 2022-01-15
  • 2021-08-11
  • 2021-07-18
  • 2021-08-31
猜你喜欢
  • 2022-02-21
  • 2022-12-23
  • 2021-12-17
  • 2021-09-27
  • 2021-10-29
相关资源
相似解决方案