Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

genlex(3) [centos man page]

Genlex(3)							   OCaml library							 Genlex(3)

NAME
Genlex - A generic lexical analyzer. Module Module Genlex Documentation Module Genlex : sig end A generic lexical analyzer. This module implements a simple ``standard'' lexical analyzer, presented as a function from character streams to token streams. It imple- ments roughly the lexical conventions of OCaml, but is parameterized by the set of keywords of your language. Example: a lexer suitable for a desk calculator is obtained by let lexer = make_lexer ["+";"-";"*";"/";"let";"="; ( ; ) ] The associated parser would be a function from token stream to, for instance, int , and would have rules such as: let parse_expr = parser [< 'Int n >] -> n | [< 'Kwd ( ; n = parse_expr; 'Kwd ) >] -> n | [< n1 = parse_expr; n2 = parse_remainder n1 >] -> n2 and parse_remainder n1 = parser [< 'Kwd + ; n2 = parse_expr >] -> n1+n2 | ... One should notice that the use of the parser keyword and associated notation for streams are only available through camlp4 extensions. This means that one has to preprocess its sources e. g. by using the -pp command-line switch of the compilers. type token = | Kwd of string | Ident of string | Int of int | Float of float | String of string | Char of char The type of tokens. The lexical classes are: Int and Float for integer and floating-point numbers; String for string literals, enclosed in double quotes; Char for character literals, enclosed in single quotes; Ident for identifiers (either sequences of letters, digits, under- scores and quotes, or sequences of ``operator characters'' such as + , * , etc); and Kwd for keywords (either identifiers or single ``spe- cial characters'' such as ( , } , etc). val make_lexer : string list -> char Stream.t -> token Stream.t Construct the lexer function. The first argument is the list of keywords. An identifier s is returned as Kwd s if s belongs to this list, and as Ident s otherwise. A special character s is returned as Kwd s if s belongs to this list, and cause a lexical error (exception Parse_error ) otherwise. Blanks and newlines are skipped. Comments delimited by (* and *) are skipped as well, and can be nested. OCamldoc 2014-06-09 Genlex(3)

Check Out this Related Man Page

OCAMLLEX(1)						      General Commands Manual						       OCAMLLEX(1)

NAME
ocamllex - The Objective Caml lexer generator SYNOPSIS
ocamllex [ -o output-file ] [ -ml ] filename.mll DESCRIPTION
The ocamllex(1) command generates Objective Caml lexers from a set of regular expressions with associated semantic actions, in the style of lex(1). Running ocamllex(1) on the input file lexer.mll produces Caml code for a lexical analyzer in file lexer.ml. This file defines one lexing function per entry point in the lexer definition. These functions have the same names as the entry points. Lexing functions take as argument a lexer buffer, and return the semantic attribute of the corresponding entry point. Lexer buffers are an abstract data type implemented in the standard library module Lexing. The functions Lexing.from_channel, Lex- ing.from_string and Lexing.from_function create lexer buffers that read from an input channel, a character string, or any reading function, respectively. When used in conjunction with a parser generated by ocamlyacc(1), the semantic actions compute a value belonging to the type token defined by the generated parsing module. OPTIONS
The ocamllex(1) command recognizes the following options: -ml Output code that does not use OCaml's built-in automata interpreter. Instead, the automaton is encoded by Caml functions. This option is mainly useful for debugging ocamllex(1), using it for production lexers is not recommended. -o output-file Specify the name of the output file produced by ocamllex(1). The default is the input file name, with its extension replaced by .ml. -q Quiet mode. ocamllex(1) normally outputs informational messages to standard output. They are suppressed if option -q is used. -v or -version Print version string and exit. -vnum Print short version number and exit. -help or --help Display a short usage summary and exit. SEE ALSO
ocamlyacc(1). The Objective Caml user's manual, chapter "Lexer and parser generators". OCAMLLEX(1)
Man Page