diff options
author | Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2016-12-26 16:43:22 +0000 |
---|---|---|
committer | Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2016-12-26 16:43:22 +0000 |
commit | cba7f31986852f565a9b9cc6ece9a1e46361ce98 (patch) | |
tree | d8e33cbae9c6f2a278c691ccffbdf6d18de5f3d6 /devel/bison | |
parent | 20f93ce0b110093282c410458135d343fc55a4b2 (diff) |
Notes
Diffstat (limited to 'devel/bison')
-rw-r--r-- | devel/bison/Makefile | 21 | ||||
-rw-r--r-- | devel/bison/pkg-descr | 35 |
2 files changed, 22 insertions, 34 deletions
diff --git a/devel/bison/Makefile b/devel/bison/Makefile index 43c935ef1912..6ac02a58282d 100644 --- a/devel/bison/Makefile +++ b/devel/bison/Makefile @@ -15,30 +15,27 @@ BUILD_DEPENDS= m4>=1.4.16,1:devel/m4 RUN_DEPENDS= m4>=1.4.16,1:devel/m4 OPTIONS_DEFINE= EXAMPLES NLS +OPTIONS_SUB= yes -USES= charsetfix makeinfo perl5 tar:xz -USE_PERL5= build -GNU_CONFIGURE= yes +CONFIGURE_ARGS+=--disable-yacc CPPFLAGS+= -I${LOCALBASE}/include +GNU_CONFIGURE= yes LDFLAGS+= -L${LOCALBASE}/lib - -CONFIGURE_ARGS+=--disable-yacc +USE_PERL5= build +USES= charsetfix makeinfo perl5 tar:xz INFO= bison +PORTEXAMPLES= calc++ -NLS_USES= gettext NLS_CONFIGURE_ENABLE= nls -OPTIONS_SUB= yes +NLS_USES= gettext -post-extract: +post-patch: @${RM} ${WRKSRC}/doc/bison.info* @${REINPLACE_CMD} 's/MANS = yacc.1/MANS =/' ${WRKSRC}/doc/Makefile.in -PORTEXAMPLES= calc++ - post-install: @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/calc++ - ${INSTALL_DATA} ${WRKSRC}/examples/calc++/*.[chly]* \ - ${STAGEDIR}${EXAMPLESDIR}/calc++ + ${INSTALL_DATA} ${WRKSRC}/examples/calc++/*.[chly]* ${STAGEDIR}${EXAMPLESDIR}/calc++ .include <bsd.port.mk> diff --git a/devel/bison/pkg-descr b/devel/bison/pkg-descr index c968b052baf7..65391329f3f5 100644 --- a/devel/bison/pkg-descr +++ b/devel/bison/pkg-descr @@ -1,22 +1,13 @@ -Bison is a tool used to write parsers, such as the parser for GNU cc. -It is similar to Yacc, which is included in the base FreeBSD system. - -The main difference between Bison and Yacc that I know of is that -Bison supports the @N construction, which gives you access to -the starting and ending line number and character number associated -with any of the symbols in the current rule. - -Also, Bison supports the command `%expect N' which says not to mention -the conflicts if there are N shift/reduce conflicts and no reduce/reduce -conflicts. - -The differences in the algorithms stem mainly from the horrible -kludges that Johnson had to perpetrate to make Yacc fit in a PDP-11. - -Also, Bison uses a faster but less space-efficient encoding for the -parse tables (see Corbett's PhD thesis from Berkeley, "Static -Semantics in Compiler Error Recovery", June 1985, Report No. UCB/CSD -85/251), and more modern technique for generating the lookahead sets. -(See "Efficient Construction of LALR(1) Lookahead Sets" by F. DeRemer -and A. Pennello, in ACM TOPLS Vol 4 No 4, October 1982. Their -technique is the standard one now.) +Bison is a general-purpose parser generator that converts an annotated +context-free grammar into a deterministic LR or generalized LR (GLR) parser +employing LALR(1) parser tables. As an experimental feature, Bison can also +generate IELR(1) or canonical LR(1) parser tables. Once you are proficient with +Bison, you can use it to develop a wide range of language parsers, from those +used in simple desk calculators to complex programming languages. + +Bison is upward compatible with Yacc: all properly-written Yacc grammars ought +to work with Bison with no change. Anyone familiar with Yacc should be able to +use Bison with little trouble. You need to be fluent in C or C++ programming in +order to use Bison. Java is also supported as an experimental feature. + +WWW: https://www.gnu.org/software/bison/ |