zoukankan      html  css  js  c++  java
  • 大话设计模式笔记 解释器模式

    解释器模式(interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

    编译原理的内容,定义一种语言,总结其文法,将其翻译成另一种语言(代码)。

    package interpreter;
    
    public abstract class AbstractExpression {
        
        public abstract void interpret(String context);
        
    }
    package interpreter;
    
    public class NonTerminalExpression extends AbstractExpression{
    
        @Override
        public void interpret(String context) {
            System.out.println("NonTerminalExpression "+context);
        }
    
    }
    package interpreter;
    
    import java.util.ArrayList;
    
    //终结符表达式,对终结符的解释操作。
    public class TerminalExpression extends AbstractExpression {
    
        @Override
        public void interpret(String context) {
            //对终结符的解释操作。
            System.out.println("TerminalExpression "+context);
        }
    
        public static void main(String[] args) {
            String context="context";
            
            ArrayList<AbstractExpression> expressions=new ArrayList<AbstractExpression>();
            
            expressions.add(new TerminalExpression());
            expressions.add(new NonTerminalExpression());
            expressions.add(new TerminalExpression());
            expressions.add(new TerminalExpression());
            
            for (AbstractExpression abstractExpression : expressions) {
                abstractExpression.interpret(context);
            }
        }
    }

    复杂的文法,应该使用语法分析程序。

  • 相关阅读:
    [cf 947E] Perpetual Subtraction
    loj3120. 「CTS2019 | CTSC2019」珍珠
    loj「LibreOJ NOI Round #2」不等关系
    loj6395. 「THUPC2018」城市地铁规划 / City
    loj2553. 「CTSC2018」暴力写挂
    loj6270. 数据结构板子题
    loj6358. 前夕
    loj6677. EntropyIncreaser 与菱形计数
    fiddler模拟接口响应数据
    Fiddler请求详解/autoResponseder重定向
  • 原文地址:https://www.cnblogs.com/linkarl/p/4868926.html
Copyright © 2011-2022 走看看