Java Lexer和Parser

时间:2018-05-08 09:13:39

标签: java parsing xtext lexer

我正在使用Xtext为java编写一个新的编辑器。 我希望解析器解析主类并用实际代码替换方法调用。

例如

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

解析后我想返回如下所述的文档。

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

}

我通过返回方法体而不是方法在词法分析器和解析器中实现了这一点。 但是稍后在编辑器中,文本区域会发生变化,编辑器中执行的任何编辑都会出错。 文件中的字符位置出错。 如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可能希望使用Xtext的Code Generation概念将DSL的源代码转换为新的人工制品,其中方法的主体是内联的。