程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 使用Antlr實現簡單的DSL,antlr實現dsl

使用Antlr實現簡單的DSL,antlr實現dsl

編輯:C#入門知識

使用Antlr實現簡單的DSL,antlr實現dsl


為什麼要使用DSL

DSL是領域專用語言,常見的DSL有SQL,CSS,Shell等等,這些DSL語言有別於其他通用語言如:C++,Java,C#,DSL常在特殊的場景或領域中使用。如下圖:

class Program { static void Main(string[] args) { TestISL(); Console.ReadLine(); } private static void TestISL() { string text = string.Empty; ParseISL(""); } private static void ParseISL(string input) { input = "return (([車速]*10+3)>(200)) && ([企業ID] == \"123\") && ([時間]>1200 && [時間]<1700);"; AntlrInputStream inputStream = new AntlrInputStream(input); ISLLexer lexer = new ISLLexer(inputStream); CommonTokenStream tokens = new CommonTokenStream(lexer); ISLParser parser = new ISLParser(tokens); IParseTree tree = parser.return_statement(); //ISLVisitor visitor = new ISLVisitor(); //object ret = visitor.Visit(tree); ISLVisitor2 visitor = new ISLVisitor2(); Result ret = visitor.Visit(tree); //Console.WriteLine(ret); Console.WriteLine(ret.Value); Console.WriteLine(ret.Text); Console.ReadLine(); } }

 

image

 

 

最後,點擊這裡下載示例。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved