/* @(#) pf_main.c 98/01/26 1.2 */
/***************************************************************
** main() routine that demonstrates how to call PForth as
** a module from 'C' based application.
** Customize this as needed for your application.
** Copyright 1994 3DO, Phil Burk, Larry Polansky, David Rosenboom
** Permission to use, copy, modify, and/or distribute this
** software for any purpose with or without fee is hereby granted.
** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
** THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
** CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
** FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
** CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
***************************************************************/
#if (defined(PF_NO_STDIO) || defined(PF_EMBEDDED))
#define NULL ((void *) 0)
#define ERR(msg) /* { printf msg; } */
#define ERR(msg) { printf msg; }
#ifndef PF_DEFAULT_DICTIONARY
#define PF_DEFAULT_DICTIONARY "pforth.dic"
const char *DicName
= NULL
;
const char *SourceName
= NULL
;
pfMessage("\npForth Embedded\n");
return pfDoForth( DicName
, SourceName
, IfInit
);
int main( int argc
, char **argv
)
const char *DicName
= NULL
;
#else /* PF_STATIC_DIC */
const char *DicName
= PF_DEFAULT_DICTIONARY
;
#endif /* !PF_STATIC_DIC */
const char *SourceName
= NULL
;
/* For Metroworks on Mac */
/* Parse command line. */
if( *s
!= '\0' ) DicName
= s
;
/* Allow space after -d (Thanks Aleksej Saushev) */
/* Make sure there is another argument. */
if (DicName
== NULL
|| *DicName
== '\0')
DicName
= PF_DEFAULT_DICTIONARY
;
ERR(("Unrecognized option!\n"));
ERR(("pforth {-i} {-q} {-dfilename.dic} {sourcefilename}\n"));
if( (Result
= pfUnitTest()) != 0 )
ERR(("pForth stopping on unit test failure.\n"));
Result
= pfDoForth( DicName
, SourceName
, IfInit
);