aboutsummaryrefslogtreecommitdiff
path: root/devel/bison
diff options
context:
space:
mode:
authorSunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>2016-12-26 16:43:22 +0000
committerSunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>2016-12-26 16:43:22 +0000
commitcba7f31986852f565a9b9cc6ece9a1e46361ce98 (patch)
treed8e33cbae9c6f2a278c691ccffbdf6d18de5f3d6 /devel/bison
parent20f93ce0b110093282c410458135d343fc55a4b2 (diff)
Notes
Diffstat (limited to 'devel/bison')
-rw-r--r--devel/bison/Makefile21
-rw-r--r--devel/bison/pkg-descr35
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/