I am trying to convert the Grammar EBNF file to infragistics EBNF but unfortunately it fails with various problems. I've attached the source file with an example and the EBNF file which I've tried to converted using Infragistics syntax engine parser.
Is the available any help to create from scratch the EBNF file? I found an example with EBNF parser on https://es.infragistics.com/help/wpf/wpf-netadvantage-for-wpf-samples.
Also some documentation:
https://es.infragistics.com/help/wpf/infragisticswpf.documents.textdocument~infragistics.documents.parsing.languageelement for other parts
but not how to create EBNF file.
Please help to convert attached files:
8130.EBNF files.zip
Hello Andrew,
Thank you very much for supporting on conversion. This provided a good starting point for understanding the grammar. Yesterday I also noticed that highlighting does not work the way it was implemented. But based on downloaded WPF samples I found out how to do this.
Hello Tomas,
I have reached out to one of our senior developers who knows a bit more about EBNF, and they have taken a look at the sample project you have provided. They have added some error logging and some productions to your EBNF file, and now the highlighting is working as is defined in the grammar file.
Note, the performance in this new sample will be a little slower as there is output window error logging. Most of this error logging is an indication that your grammar is ambiguous, but other things are definitely working – for example, the “Using” statements.
Regarding the highlighting happening in the quoted strings, this is happening because your grammar file does not have anything to tell it not to highlight within quoted strings. The XamSyntaxEditor highlighting is purely based on the grammar/EBNF files used, and so if you do not tell the editor to not highlight within quotations, it will continue to highlight there. I am unsure of what exactly you need to add to prevent this highlight, but this is likely related to my inexperience with EBNF and grammar file creation.
It is worth noting that the revised sample I am attaching here is beginning to exceed the scope of what developer support provides, and that we are essentially beginning to be in the realm of a consulting service. If you have specific questions about certain pieces of the XamSyntaxEditor, we can answer them to the best of our ability, but creation of a custom EBNF file is not something that we can generally provide support for.
Please let me know if you have any other questions or concerns on this matter.
TranslatorEditor_Revised.zip
Thanks a lot for the article. I will have to look at this.
The highlighting is working for me in the sample project but it also happens in quoted strings (not expected). It is using only the manually added keyword highlighting. The EBNF file I couldn't parse it to the C# code so this is just added to the solution but not used anywhere.
Our language is combination of two languages. But it is not too complicated. In the example project I've already provided sample file of our language (SecsCodeSample.txt which needs to be reformatted with new line characters if opened in Notepad). Also if you run the sample project this file will be loaded to the editor correctly.
I don't know any other language similar to our one as it is developed by our company and it is very specific to the our communication needs with tools. The code exposes few method types (listed as keywords: Request, Response and etc) then message type and fallowed by message body which could be compared to XML but having injection elements to the body from arguments.
Thank you for the sample project. I can see that some of the keywords that you have defined do not seem to be working in the XamSyntaxEditor. I am under the impression that this is because the grammar of the XamSyntaxEditor is not picking up that it should highlight these elements, although at the moment, I am unsure as to why.
I did some digging, and I found a documentation article about EBNF File Formats that might help you in this case as well as how you can currently generate an EBNF file from a Grammar object. You can also read about creation of a Grammar object here.
You have mentioned that your language is very different than XML. Is there a language that it is more similar to? I ask, as our source code includes full EBNF files for C#, Visual Basic, and Transact-SQL.
Hi Andrew,
I've already looked into this file and based on this file sample I've tried to create our new custom language (as attached before). Unfortunately our Custom Language is very different than XML and this makes difficult to transform.
I've create a sample project with our manually used syntax editor containing only keywords. This works but it does not have all features listed in EBNF file. Without documentation it is still hard to define other TerminalSymbol elements correctly.
TranslatorEditor.zip