Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
make_dparser(1)			 User Manuals		       make_dparser(1)

NAME
       make_dparser - D	Parser Generator

SYNOPSIS
       make_dparser [options] grammar

DESCRIPTION
       make_dparser  is	a scannerless GLR parser generator based on the	Tomita
       algorithm. It is	self-hosted and	very easy to use. Grammars are written
       in a natural style of EBNF and regular  expressions  and	 support  both
       speculative and final actions.

OPTIONS
       -l     Toggle  longest match lexical ambiguity resolution.  When	ON the
	      scanner only recognizing the longest matching tokens in a	 given
	      state. This provides an easy way to build	grammars for languages
	      which use	longest	match lexical ambiguity	resolution (e.g. ANSI-
	      C, C++). (OFF by default)

       -T     Toggle  building	of a tokenizer for START.  When	ON, instead of
	      generating a unique scanner for each state (i.e. a 'scannerless'
	      parser), generate	a single scanner (tokenizer)  for  the	entire
	      grammar.	 This  provides	an easy	way to build grammars for lan-
	      guages which assume a tokenizer (e.g. ANSI C). (OFF by default)

       -H -1/0/1
	      Write header, 0 :	no, 1 :	yes, -1	: only if not empty.

       -t 0/1 Token type, 0 : #define, 1 : enum.

       -C     Toggle computing whitespace states.  If 'whitespace' is  defined
	      in  the  grammar,	 then  use it as a subparser to	consume	white-
	      space. (ON by default)

       -A     Toggle computing states for  all	non-terminals.	 Ensures  that
	      there  is	 a  unique  state for each non-terminal	so that	a sub-
	      parsers can be invoked for that non-terminal. (OFF by default)

       -i tag Tag for grammar data structures so that multiple sets of	tables
	      can be included in one file/application. (defaults to 'gram')

       -b blocks
	      Number  of  blocks  to  which scanner tables are broken up into.
	      Larger numbers permit more sharing with more overhead.  4	 seems
	      to be optimal for	most grammars. (defaults to 4) files.

       -p     Toggle  setting of operator priority from	rules.	Setting	of op-
	      erator priorities	on operator tokens can increase	 the  size  of
	      the  tables but can permit unnecessary parse stacks to be	pruned
	      earlier. (OFF by default)

       -r     Toggle use of right recursion  for  EBNF	productions.   Do  not
	      change  this  unless you really know what	you are	doing. (OFF by
	      default)

       -L     Toggle writing of	line numbers.  Used to debug the parsing table
	      generator	itself.	(ON by default)

       -X     Set the extension	of the generated code file.  For C++  programs
	      (for  example)  the extension can	be set to .cpp with the	option
	      "-Xcpp".	("-Xc" by default)

       -v     Increase verbosity.

       -R     Replace all actions in the grammar with actions printing produc-
	      tions, 1 : during	the speculative	parsing	process	(<-), 2	: when
	      reduction	is part	of any legal final parse (<=), 3 : both,  4  :
	      remove  all actions from the grammar.  Print the changed grammar
	      to stdout.  Useful for debugging or prototyping new,  experimen-
	      tal grammars.

       -d     Increase debugging.

       -h     Display help.

ENVIRONMENT
       All  the	 options  are available	through	environment variables with the
       names:

       D_MAKE_PARSER_HEADER, D_MAKE_PARSER_TOKEN, D_MAKE_PARSER_GRAMMAR_IDENT,
       D_MAKE_PARSER_SCANNER_BLOCKS, D_MAKE_PARSER_SET_PRIORITY,
       D_MAKE_PARSER_WRITE_LINE_DIRECTIVES, D_MAKE_RDEBUG_GRAMMAR,
       D_MAKE_PARSER_VERBOSE, D_MAKE_PARSER_DEBUG.

FEATURES
       The features are	covered	in the documentation.  See the README file.

FILES
       None.

NO WARRANTIES
       This program is distributed in the hope that it	will  be  useful,  but
       WITHOUT	ANY  WARRANTY;	without	 even  the  implied  warranty  of MER-
       CHANTABILITY or FITNESS FOR A PARTICULAR	PURPOSE.  See LICENSE.txt  for
       more details.

SEE ALSO
       flex(1),	yacc(1), bison(1)

       D Parser	Home Page: http://dparser.sourceforge.net/

       The BSD General Public License.

AUTHOR
       John Plevyak.  Use <jplevyak at users.sourceforge.net> to contact.

Unix				   Mar 2003		       make_dparser(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=make_dparser&sektion=1&manpath=FreeBSD+Ports+15.0.quarterly>

home | help