h2pas man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

h2pas(1)	    Free Pascal C header conversion utility	      h2pas(1)

NAME
       h2pas - The C header to pascal unit conversion program.

SYNOPSIS
       h2pas [options] filename

DESCRIPTION
       h2pas  attempts	to  convert  a C header file to a pascal unit.	it can
       handle most C constructs that  one  finds  in  a	 C  header  file,  and
       attempts	 to  translate them to their pascal counterparts. see the CON‐
       STRUCTS section for a full description of what the translator can  han‐
       dle.

USAGE
       H2pas is a command-line tool that translates a C header file to a spas‐
       cal unit. It reads the C header file and translates the C  declarations
       to equivalent pascal declarations that can be used to access code writ‐
       ten in C.

       The output of the h2pas program is written to a file with the same name
       as  the	C  header  file that was used as input, but with the extension
       .pp.  The output file that h2pas creates can be customized in a	number
       of ways by means of many options.

OPTIONS
       The output of h2pas can be controlled with the following options:

       -d     use external; for all procedure and function declarations.

       -D     use external libname name 'func_name' for function and procedure
	      declarations.

       -e     Emit a series of constants instead of an	enumeration  type  for
	      the C enum construct.

       -i     create  an  include  file	 instead  of  a	 unit  (omits the unit
	      header).

       -l libname
	      specify the library name for external function declarations.

       -o outfile
	      Specify the output file name. Default is	the  input  file  name
	      with the extension replaced by .pp "."

       -p     use  the letter P in front of pointer type parameters instead of
	      "^".

       -s     Strip comments from the input file. By default comments are con‐
	      verted  to  comments, but they may be displaced, since a comment
	      is handled by the scanner.

       -t     prepend typedef type names with the letter  T  (used  to	follow
	      Borland's convention that all types should be defined with T).

       -v     replace pointer parameters by call by reference parameters.  Use
	      with care because some calls can expect a NIL pointer.

       -w     Header file is a win32 header file (adds support for  some  spe‐
	      cial macros).

       -x     handle SYS_TRAP of the PalmOS header files.

CONSTRUCTS
       The following C declarations and statements are recognized:

       defines
	      defines  are  changed  into  pascal constants if they are simple
	      defines.	macros are changed - wherever possible	to  functions;
	      however the arguments are all integers, so these must be changed
	      manually. Simple expressions in define staments are  recognized,
	      as are most arithmetic operators: addition, substraction, multi‐
	      plication, division, logical operators,  comparision  operators,
	      shift operators. The C construct ( A ? B : C) is also recognized
	      and translated to a pascal construct with an IF statement	 (this
	      is buggy, however).

       preprocessor statements
	      the conditional preprocessing commands are recognized and trans‐
	      lated into equivalent pascal compiler  directives.  The  special
	      #ifdef __cplusplus is also recognized and removed.

       typedef
	      A typedef statement is changed into a pascal type statement. The
	      following basic types are recognized:

	      char   changed to char.

	      float  changed to real (=double in free pascal).

	      int    changed to longint.

	      long   changed to longint.

	      long int
		     changed to longint.

	      short  changed to integer.

	      unsigned
		     changed to cardinal.

	      unsigned char
		     changed to byte.

	      unsigned int
		     changed to cardinal.

	      unsigned long int
		     changed to cardinal.

	      unsigned short
		     changed to word.

	      void   ignored.
       These types are also changed if they appear in the arguments of a func‐
       tion or procedure.

       functions and procedures
	      functions	 and  procedures are translated as well; pointer types
	      may be changed to call by reference  arguments  (using  the  var
	      argument)	 by using the -p command line argument. functions that
	      have a variable number of arguments are changed  to  a  function
	      with an array of const argument.

       specifiers
	      the  extern  specifier is recognized; however it is ignored. the
	      packed specifier is also recognised and changed with  the	 PACK‐
	      RECORDS  directive.  The const specifier is also recognized, but
	      is ignored.

       modifiers
	      If the -w option is specified, then the following modifiers  are
	      recognized:  STDCALL , CDECL , CALLBACK , PASCAL , WINAPI , API‐
	      ENTRY , WINGDIAPI as defined in the win32 headers.  If addition‐
	      ally  the	 -x option is specified then the SYS_TRAP specifier is
	      also recognized.

       enums  enum constructs are changed into enumeration types; bear in mind
	      that  in	C  enumeration types can have values assigned to them;
	      Free Pascal also allows this to a certain degree.	 If  you  know
	      that  values  are	 assigned  to  enums, it is best to use the -e
	      option to change the enus to a series of integer constants.

       unions unions are changed to variant records.

       structs
	      are changed to pascal records, with C packing.

SEE ALSO
	      ppc386(1) ppumove(1)

Free Pascal			  12 Dec 1999			      h2pas(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net