* included in the distribution.
*
* $RCSfile: connect.h,v $
- * $Revision: 1.35 $
- * $Date: 2000/04/04 15:41:56 $
+ * $Revision: 1.36 $
+ * $Date: 2000/04/04 17:35:04 $
* ------------------------------------------------------------------------*/
/* --------------------------------------------------------------------------
extern Int diNum; /* also for deriving */
extern List cfunSfuns; /* List of (Cfun,[SelectorVar]) */
+extern Module moduleBeingParsed; /* so the parser (topModule) knows */
+
+
#if USE_PREPROCESSOR
extern String preprocessor; /* preprocessor command */
#endif
* included in the distribution.
*
* $RCSfile: hugs.c,v $
- * $Revision: 1.56 $
- * $Date: 2000/04/04 17:07:15 $
+ * $Revision: 1.57 $
+ * $Date: 2000/04/04 17:35:04 $
* ------------------------------------------------------------------------*/
#include <setjmp.h>
Bool debugSC = FALSE;
Bool combined = FALSE;
- char* currentFile; /* Name of current file, or NULL */
-static char currentFileName[1000]; /* name is stored here if it exists*/
-
-
-
-static Text evalModule = 0; /* Name of module we eval exprs in */
-static String currProject = 0; /* Name of current project file */
-static Bool projectLoaded = FALSE; /* TRUE => project file loaded */
+ Module moduleBeingParsed; /* so the parser (topModule) knows */
+static char* currentFile; /* Name of current file, or NULL */
+static char currentFileName[1000]; /* name is stored here if it exists*/
static Bool autoMain = FALSE;
static String lastEdit = 0; /* Name of script to edit (if any) */
assert(isModule(mod));
strncpy(currentFileName, textToStr(module(mod).text), 990);
strcat(currentFileName, textToStr(module(mod).srcExt));
- currentFile = currentFileName;
+ currentFile = currentFileName;
+ moduleBeingParsed = mod;
}
static void clearCurrentFile ( void )
{
- currentFile = NULL;
+ currentFile = NULL;
+ moduleBeingParsed = NIL;
}
static void ppMG ( void )
* included in the distribution.
*
* $RCSfile: parser.y,v $
- * $Revision: 1.26 $
- * $Date: 2000/03/22 18:14:22 $
+ * $Revision: 1.27 $
+ * $Date: 2000/04/04 17:35:04 $
* ------------------------------------------------------------------------*/
%{
$2,
singleton(ap(MODULEENT,$2)),
$5)));}
+
+ | begin modBody end {ConId fakeNm = mkCon(module(
+ moduleBeingParsed).text);
+ $$ = gc2(ap(M_MODULE,
+ ztriple(fakeNm,
+ singleton(ap(MODULEENT,fakeNm)),
+ $2)));}
+
| TMODULE error {syntaxError("module definition");}
;
/*- Tricks to force insertion of leading and closing braces ---------------*/
+begin : error {yyerrok;
+ if (offsideON) goOffside(startColumn);}
+ ;
+
end : '}' {$$ = $1;}
| error {yyerrok;
if (offsideON && canUnOffside()) {