简体   繁体   English

Java Lexer和解析器

[英]Java Lexer and Parser

I am writing a new editor for java using Xtext. 我正在使用Xtext为Java写一个新的编辑器。 I want parser to parse the main class and replace the method call by actual code. 我希望解析器解析主类,并用实际代码替换方法调用。

eg 例如

Class Test {                                                           
           public static void main(String[] args ){ 
                 System.out.println("Virag");                            
                 method();                                                        
           }                                                           
           public static method(){             
                System.out.println("Purnam");                                    
           }                                                                
}

After parsing I want to return a document like mentioned below. 解析后,我想返回一个如下所述的文档。

Class Test {                                                           
           public static void main(String[] args ){ 
                 System.out.println("Virag");                            
                 System.out.println("Purnam");                                                        
           }                                                         

}

I achieved this in lexer and parser by return of method body instead of method. 我通过返回方法体而不是方法在lexer和解析器中实现了这一点。 But later in editor, text region gets changed and any edit performed in editor goes wrong. 但是后来在编辑器中,文本区域被更改,并且在编辑器中执行的任何编辑都出错了。 Character positions in documents are going wrong. 文档中的字符位置出错。 How to fix this problem? 如何解决这个问题?

您可能希望使用Xtext的代码生成概念将DSL的源代码转换为内联方法主体的新工件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 哪个 Java 面向简单项目(ANTLR、DIY 等)的词法分析器 - Which Java oriented lexer parser for simple project (ANTLR, DIY, etc) 检查词法分析器和解析器 java antlr4 中是否有任何错误 - check if there is any errors in lexer and parser java antlr4 在分离的语法和词法分析器上运行`TestRig`导致`java.lang.ClassCastException`或`无法将测试加载为词法分析器或解析器 - Running `TestRig` on separated grammer and lexer results in `java.lang.ClassCastException` or `Can't load Test as lexer or parser` Antlr在词法分析器内部使用解析器 - Antlr Using Parser Inside A Lexer antlr 词法分析器和解析器的转义字符 - Escape characters for an antlr lexer and parser 我可以使用Antlr创建的词法分析器/解析器来解析PDDL文件并将数据返回给Java程序吗? - Can I use an Antlr created lexer/parser to parse PDDL file and return data to a Java program? 如何将生成的词法分析器/解析器从Antlr4集成到我的java项目中 - How to integrate the generated lexer/parser from Antlr4 into my java project Antlr4/Java:如何根据调用它的解析器规则制作一个跳过标记(词法分析器)的语义谓词 - Antlr4/Java : how to make a semantic predicate that skips a token (lexer) according to the parser rule that calls it ANTLR4 JAVA - 是否可以从解析器侦听器点的词法分析器中提取片段? - ANTLR4 JAVA -Is it possible to extract fragments from the lexer at the Parser Listener point? 此ANTLR 4 Lexer文件中的“语法分析器不允许使用解析器规则'通道'”错误是什么? - What is “parser rule 'channels' not allowed in lexer” error in this ANTLR 4 Lexer file?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM