Does anyone have a EBNF definition for parsing SQL-92 or SQL-99 or SQL-2003 syntax?
Hello Dsuter,
In our new version we have Infragistics Syntax Parsing Framework CTP that allow real-time parsing of editor content based on grammar rules created through Extended Backus–Naur Form (EBNF) notation. We implement ISO 14977 ( more information you could find at http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26153 )
Also you could take a look in our sample browser where we using EBNF :
- SQL Parsing and Coloring
- Infragistics Sytnax parsing code editor
Let me know if you have any quesitons
Regards
Is this framework now available or not? how does it work? I can't find any information on it?
Dear Georgi,
I downloaded the latest version of Infragistics (2012.2) but i still can't find an easy way to use the Syntax Parsing Framework.
Are there already more examples on how to use it?
The example for XML looks promising, but I can't find ebnf files for SQL or any other language.
I also questioned if it could be used with the Infragistics controls, I made this comment several times before (not only in this thread)
Some of the in-build screens of the controls were not using Infragistics components! (using the AppStylist not to work on those of course)
I hope to get a positive reply soon.
Thanks in advance.
Christophe
Hello Christophe,
cvdk said:I downloaded the latest version of Infragistics (2012.2) but i still can't find an easy way to use the Syntax Parsing Framework.
I`m not sure what is your expectation. Maybe you are looking for SQL editor with Parse functionality. If so, you could create such editor using Infragistics controls (or third party controls) which implement our Syntax Parsing Framework. Our Syntax Parsing Framework has functionality to import different Grammar Definitions using EBNF format (for SQL, XML, or custom language). By this way you could Parse your text depending of your definitions. Our Syntax Parsing Framework allow real-time parsing of editor content, based on grammar rules in EBNF definition. The editor could be any Control (UserControl) which has base appearance functionality
cvdk said:Are there already more examples
I suppose that you already find the samples from our sample browser.
cvdk said: How to use it?
My suggestion is to take a look at the source code of both samples from "Sample Browser". There you could find that we create an instance from :
Infragistics.SyntaxParsing.Grammar gmar = new Infragistics.SyntaxParsing.Grammar();
gmar.FromEbnf();
and using FromEbnf() method we load our parse definition. Also using events EbnfParsing() or EbnfParseComplete() you could validate the text from your editor.
cvdk said: The example for XML looks promising, but I can't find ebnf files for SQL or any other language
That`s correct. Please note that EBNF definitions for SQL or any other language are not free. You could order such definitions for example from http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=26153
http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=53681
cvdk said: I also questioned if it could be used with the Infragistics controls, I made this comment several times before (not only in this thread)
Let me know if you have any questions.
It is still not a good solution. I got the iso documents, but there is no such thing as the SQL.esbn file. Searching on Google also doesn’t bring any useful hits.
For me it is impossible in time to start writing these definitions. What is also not entirely clear is how the coloring is done. Will I have to write my own GetColor function for this (XMLLanguage_Extensions)?
Anyhow I would expect Infragistics to deliver ready to use solutions, so I don’t have to spend hours on getting what I want on my screen.
Still hoping for an easy to use solution,
With the release of 13.1 we are adding support for a subset of the T-SQL language. This will be available in the WPF version, as there is no editor in WinForms. Meaning that you would have to use host XamSyntaxEditor in your WinForms application to get the functionality you are looking for.
Brian,
Looking forward to it.
Regards,Christophe