relicense to 0BSD
[pforth] / csrc / pfcompil.h
CommitLineData
8e9db35f
PB
1/* @(#) pfcompil.h 96/12/18 1.11 */
2
3#ifndef _pforth_compile_h
4#define _pforth_compile_h
5
6/***************************************************************
7** Include file for PForth Compiler
8**
9** Author: Phil Burk
10** Copyright 1994 3DO, Phil Burk, Larry Polansky, David Rosenboom
11**
1f99f95d
S
12** Permission to use, copy, modify, and/or distribute this
13** software for any purpose with or without fee is hereby granted.
14**
15** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
16** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
17** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
18** THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
19** CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
20** FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
21** CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
8e9db35f
PB
23**
24***************************************************************/
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30Err ffPushInputStream( FileStream *InputFile );
31ExecToken NameToToken( const ForthString *NFA );
32FileStream * ffConvertSourceIDToStream( cell_t id );
33FileStream *ffPopInputStream( void );
34cell_t ffConvertStreamToSourceID( FileStream *Stream );
35cell_t ffFind( const ForthString *WordName, ExecToken *pXT );
36cell_t ffFindC( const char *WordName, ExecToken *pXT );
37cell_t ffFindNFA( const ForthString *WordName, const ForthString **NFAPtr );
38cell_t ffNumberQ( const char *FWord, cell_t *Num );
39cell_t ffRefill( void );
40cell_t ffTokenToName( ExecToken XT, const ForthString **NFAPtr );
41cell_t *NameToCode( ForthString *NFA );
42PForthDictionary pfBuildDictionary( cell_t HeaderSize, cell_t CodeSize );
43char *ffWord( char c );
f7548536 44char *ffLWord( char c );
8e9db35f
PB
45const ForthString *NameToPrevious( const ForthString *NFA );
46cell_t FindSpecialCFAs( void );
47cell_t FindSpecialXTs( void );
48cell_t NotCompiled( const char *FunctionName );
49void CreateDicEntry( ExecToken XT, const ForthStringPtr FName, ucell_t Flags );
50void CreateDicEntryC( ExecToken XT, const char *CName, ucell_t Flags );
51void ff2Literal( cell_t dHi, cell_t dLo );
52void ffALiteral( cell_t Num );
53void ffColon( void );
54void ffCreate( void );
55void ffCreateSecondaryHeader( const ForthStringPtr FName);
56void ffDefer( void );
57void ffFinishSecondary( void );
58void ffLiteral( cell_t Num );
59void ffStringCreate( ForthStringPtr FName);
60void ffStringDefer( const ForthStringPtr FName, ExecToken DefaultXT );
61void pfHandleIncludeError( void );
62
63ThrowCode ffSemiColon( void );
64ThrowCode ffOK( void );
65ThrowCode ffInterpret( void );
66ThrowCode ffOuterInterpreterLoop( void );
67ThrowCode ffIncludeFile( FileStream *InputFile );
68
69#ifdef PF_SUPPORT_FP
70void ffFPLiteral( PF_FLOAT fnum );
71#endif
72
73#ifdef __cplusplus
74}
75#endif
76
77#endif /* _pforth_compile_h */