/* @(#) pfcompil.h 96/12/18 1.11 */
#ifndef _pforth_compile_h
#define _pforth_compile_h
/***************************************************************
** Include file for PForth Compiler
** Copyright 1994 3DO, Phil Burk, Larry Polansky, David Rosenboom
** The pForth software code is dedicated to the public domain,
** and any third party may reproduce, distribute and modify
** the pForth software code or any derivative works thereof
** without any compensation or license. The pForth software
** code is provided on an "as is" basis without any warranty
** of any kind, including, without limitation, the implied
** warranties of merchantability and fitness for a particular
** purpose and their equivalents under the laws of any jurisdiction.
***************************************************************/
Err
ffPushInputStream( FileStream
*InputFile
);
ExecToken
NameToToken( const ForthString
*NFA
);
FileStream
* ffConvertSourceIDToStream( cell_t id
);
FileStream
*ffPopInputStream( void );
cell_t
ffConvertStreamToSourceID( FileStream
*Stream
);
cell_t
ffFind( const ForthString
*WordName
, ExecToken
*pXT
);
cell_t
ffFindC( const char *WordName
, ExecToken
*pXT
);
cell_t
ffFindNFA( const ForthString
*WordName
, const ForthString
**NFAPtr
);
cell_t
ffNumberQ( const char *FWord
, cell_t
*Num
);
cell_t
ffTokenToName( ExecToken XT
, const ForthString
**NFAPtr
);
cell_t
*NameToCode( ForthString
*NFA
);
PForthDictionary
pfBuildDictionary( cell_t HeaderSize
, cell_t CodeSize
);
const ForthString
*NameToPrevious( const ForthString
*NFA
);
cell_t
FindSpecialCFAs( void );
cell_t
FindSpecialXTs( void );
cell_t
NotCompiled( const char *FunctionName
);
void CreateDicEntry( ExecToken XT
, const ForthStringPtr FName
, ucell_t Flags
);
void CreateDicEntryC( ExecToken XT
, const char *CName
, ucell_t Flags
);
void ff2Literal( cell_t dHi
, cell_t dLo
);
void ffALiteral( cell_t Num
);
void ffCreateSecondaryHeader( const ForthStringPtr FName
);
void ffFinishSecondary( void );
void ffLiteral( cell_t Num
);
void ffStringCreate( ForthStringPtr FName
);
void ffStringDefer( const ForthStringPtr FName
, ExecToken DefaultXT
);
void pfHandleIncludeError( void );
ThrowCode
ffSemiColon( void );
ThrowCode
ffInterpret( void );
ThrowCode
ffOuterInterpreterLoop( void );
ThrowCode
ffIncludeFile( FileStream
*InputFile
);
void ffFPLiteral( PF_FLOAT fnum
);
#endif /* _pforth_compile_h */