Thread: [CEDET-devel] wisent.texi
Brought to you by:
zappo
From: Eric M. L. <er...@si...> - 2002-06-30 14:56:46
|
Here is a small patch to wisent.texi for some of the sections I've read so far. Eric ------------ *** wisent.texi.~1.16.~ Sun Jun 30 10:48:01 2002 --- wisent.texi Sun Jun 30 10:54:37 2002 *************** *** 1838,1851 **** @subsection Bison style @cindex Grammar Bison style ! What we call the @dfn{Bison style} is actually the traditional style ! of Bison's grammars. Compared to bovine style, it is not ! straightforward to use grammars written in Bison style in Semantic. ! Mainly because such grammars are designed to parse the whole input ! data in one pass, and don't use the bovinator back-end mechanism ! (@pxref{Bovine style}). With Bison style the parser is called once to ! parse the grammar start nonterminal. ! @br{} The following example is a snippet of the Bison style Java grammar provided in the Semantic distribution in the file @file{wisent-java.wy}. --- 1838,1851 ---- @subsection Bison style @cindex Grammar Bison style ! What we call the @dfn{Bison style} is the traditional style of Bison's ! grammars. Compared to bovine style, it is not straightforward to use ! grammars written in Bison style in Semantic. Mainly because such ! grammars are designed to parse the whole input data in one pass, and ! don't use the bovinator back-end mechanism (@pxref{Bovine style}). ! With Bison style the parser is called once to parse the grammar start ! nonterminal. ! The following example is a snippet of the Bison style Java grammar provided in the Semantic distribution in the file @file{wisent-java.wy}. *************** *** 1875,1883 **** unexpected input data. @br{} The second consequence is that the bovinator can't do automatic raw to ! cooked token translation, excepted for the start nonterminal value. ! So it is also necessary to explicitly return cooked semantic tokens ! from concerned semantic actions by calling the function @code{wisent-cooked-token} with the appropriate parameters.@* @xref{Start nonterminals}, for partial re-parse considerations. @br{} --- 1875,1883 ---- unexpected input data. @br{} The second consequence is that the bovinator can't do automatic raw to ! cooked token translation, except for the start nonterminal value. It ! is necessary to explicitly return cooked semantic tokens from ! concerned semantic actions by calling the function @code{wisent-cooked-token} with the appropriate parameters.@* @xref{Start nonterminals}, for partial re-parse considerations. @br{} *************** *** 1974,1979 **** --- 1974,1982 ---- In such cases, when it is difficult for Emacs to obtain @code{semantic-list} syntactic tokens, the best solution is to use traditional Bison style with error recovery! + + In some extreme cases, it can also be convenient to extend + @dfn{semantic-flex}. @ref{Wisent Flex} @node Start nonterminals @subsection Start nonterminals -- Eric Ludlam: za...@gn..., er...@si... Home: www.ultranet.com/~zappo Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |
From: David P. <da...@dp...> - 2002-06-30 19:14:04
|
Hi Eric, > Here is a small patch to wisent.texi for some of the sections I've > read so far. Thanks! Just a question about the following addition: + + In some extreme cases, it can also be convenient to extend + @dfn{semantic-flex}. @ref{Wisent Flex} I am confused... Do you really mean `semantic-flex' here? IMO, it should be `wisent-flex'. The chapter is about writing Wisent grammars for Semantic, using "Mixed style" when it is difficult to use a full "Bovine style". Nevertheless, I agree with you on the idea ;-) I would just rewrite the phrase like this: "In some extreme cases, it can also be convenient to extend the lexer, @code{wisent-flex} (@pxref{Wisent Flex}). It might be necessary too to extend the Semantic lexer, @code{semantic-flex}, to deliver new syntactic tokens to @code{wisent-flex} extensions." What do you think? David |
From: Eric M. L. <er...@si...> - 2002-07-01 13:23:07
|
>>> David Ponce <da...@dp...> seems to think that: >Hi Eric, > > > Here is a small patch to wisent.texi for some of the sections I've > > read so far. > >Thanks! > >Just a question about the following addition: > >+ >+ In some extreme cases, it can also be convenient to extend >+ @dfn{semantic-flex}. @ref{Wisent Flex} > >I am confused... Do you really mean `semantic-flex' here? > >IMO, it should be `wisent-flex'. The chapter is about writing Wisent >grammars for Semantic, using "Mixed style" when it is difficult to use >a full "Bovine style". [ ... ] Hi, My first thought was that wisent-flex used semantic-flex. Secondarily, I was also under the impression that we were going to try to unify some differences between the two parsers to ease maintenance and learning. I've been experimenting with the macros necessary to allow compile-time creation of custom lexers that only include the bits of the lexer actually used. It would eliminate loops (for the regex extensions) and unused parts (such as whitespace.) If I get it to go, we could put lexer design into the .bnf or .wy files as you had mentioned a couple months ago. Eric -- Eric Ludlam: za...@gn..., er...@si... Home: www.ultranet.com/~zappo Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |