Combined scanner/parser generator for LR compliant grammar definitions.
The generated C++ parser class is used as a super class from which a parser
implementation class must be derived. The implementation class implements the
scanner feed methods but also all required semantic action method. dragon has
been used for several large projects with complex grammar definitions (about
200 productions/ 80 tokens ). Since for those grammar defintions, the analyse
phase to build up the parse table is quite CPU intensive, it is recommended to
use state of the art hardware. dragon requires the base package to get compiled
but also for the compilation of the generated C++ code.
It can be used for databases/cego and probably other applications.
Many more details are available at:
ftnchek (short for Fortran checker) is designed to detect certain errors
in a Fortran 77 program that a compiler usually does not. ftnchek is not
primarily intended to detect syntax errors. Its purpose is to assist the
user in finding semantic errors. Semantic errors are legal in the Fortran
77 language but are wasteful or may cause incorrect operation. For example,
variables which are never used may indicate some omission in the program;
uninitialized variables contain garbage which may cause incorrect results
to be calculated; and variables which are not declared may not have the
intended type. ftnchek is intended to assist users in the debugging of
their Fortran 77 program. It is not intended to catch all syntax errors.
This is the function of the compiler. Prior to using ftnchek, the user
should verify that the program compiles correctly.
"Include what you use" means this: for every symbol (type, function,
variable, or macro) that you use in foo.cc (or foo.cpp), either foo.cc
or foo.h should include a .h file that exports the declaration of that
symbol. (Similarly, for foo_test.cc, either foo_test.cc or foo.h should
do the including.) Obviously symbols defined in foo.cc itself are
excluded from this requirement.
This puts us in a state where every file includes the headers it needs
to declare the symbols that it uses. When every file includes what it
uses, then it is possible to edit any file and remove unused headers,
without fear of accidentally breaking the upwards dependencies of
that file. It also becomes easy to automatically track and update
dependencies in the source code.
JWasm is a MASM v6 compatible assembler. It's a fork of Open Watcom's WASM
and released under the Sybase Open Watcom Public License, which allows
free commercial and non-commercial use. JWasm is written in C, source code
is open.
JWasm Features:
- JWasm natively supports output formats Intel OMF, MS Coff (32- and
64-bit), Elf (32- and 64-bit), Bin and DOS MZ.
- precompiled JWasm binaries are available for DOS, Windows and Linux. For
OS/2 and FreeBSD, makefiles are supplied.
- Instructions up to SSSE3 are supported.
- The JWasm source is portable and has successfully been tested with Open
Watcom, MS VC, GCC and more.
- As far as programming for Windows is concerned, JWasm can be used with
both Win32Inc and Masm32.
- C header files can be converted to include files for JWasm with h2incX.
Many JavaScript implementations do not warn against questionable coding
practices. Yes, that's nice for the site that "works best with Internet
Explorer" (designed with templates, scripted with snippets copied from
forums). But it's a nightmare when you actually want to write quality,
maintainable code.
That's where JavaScript Lint comes in. With JavaScript Lint, you can
check all your JavaScript source code for common mistakes without actually
running the script or opening the web page.
JavaScript Lint holds an advantage over competing lints because it is
based on the JavaScript engine for the Firefox browser. This provides
a robust framework that can not only check JavaScript syntax but also
examine the coding techniques used in the script and warn against
questionable practices.
libLASi is a library written by Larry Siden that provides a C++ stream
output interface ( with operator << ) for creating Postscript documents
that can contain characters from any of the scripts and symbol blocks
supported in Unicode and by Owen Taylor's Pango layout engine. The
library accommodates right-to-left scripts such as Arabic and Hebrew as
easily as left-to-right scripts. Indic and Indic-derived Complex Text
Layout (CTL) scripts, such as Devanagari, Thai, Lao, and Tibetan are
supported to the extent provided by Pango and by the OpenType fonts
installed on your system. All of this is provided without need for any
special configuration or layout calculation on the programmer's part.
Privman is a library that makes it easy for programs to use privilege
separation, a technique that prevents the leak or misuse of privilege
from applications that must run with some elevated permissions. The
Privman library simplifies the otherwise complex task of separating
the application, protecting the system from compromise if an error in
the application logic is found.
Applications that use the Privman library split into two halves, the
half that performs valid privileged operations, and the half that
contains the application's logic. The library uses configuration files
to provide fine-grained access control for the privileged operations,
limiting exposure in even of an attack against the application. When
the application is compromised, the attacker gains only the privileges
of an unprivileged user and the specific privileges granted to the
application by the application's Privman configuration file.
The tecla library provides UNIX and LINUX programs with interactive
command line editing facilities, similar to those of the Unix tcsh
shell. In addition to simple command-line editing, it supports recall
of previously entered command lines, TAB completion of file names or
other tokens, and in-line wild-card expansion of file names. The
internal functions which perform file-name completion and wild-card
expansion are also available externally for optional use by programs,
along with a module for tab-completion and lookup of file names in a
list of directories.
Note that special care has been taken to allow the use of this library
in threaded programs. The option to enable this is discussed in the
Makefile, and specific discussions of thread safety are presented in
the included man pages.
Dwarves is a set of tools that use the debugging information inserted in ELF
binaries by compilers such as GCC, used by well known debuggers such as GDB,
and more recent ones such as systemtap.
Utilities in the dwarves suite include pahole, that can be used to find
alignment holes in structs and classes in languages such as C, C++, but not
limited to these.
It also extracts other information such as CPU cacheline alignment, helping
pack those structures to achieve more cache hits.
A diff like tool, codiff can be used to compare the effects changes in source
code generate on the resulting binaries.
Another tool is pfunct, that can be used to find all sorts of information about
functions, inlines, decisions made by the compiler about inlining, etc.
AnyEvent provides an identical interface to multiple event loops.
This allows module authors to utilise an event loop without forcing
module users to use the same event loop (as only a single event loop
can coexist peacefully at any one time).
The interface itself is vaguely similar but not identical to the Event
module.
On the first call of any method, the module tries to detect the
currently loaded event loop by probing wether any of the following
modules is loaded: Coro::Event, Event, Glib, Tk. The first one found
is used. If none is found, the module tries to load these modules in
the order given. The first one that could be successfully loaded will
be used. If still none could be found, AnyEvent will fall back to a
pure-perl event loop, which is also not very efficient.