src/Parser.cc

changeset 89
029a330a9bef
parent 88
5def6ff8b466
child 91
427eb377d53e
--- a/src/Parser.cc	Sun Feb 02 17:06:39 2014 +0200
+++ b/src/Parser.cc	Sun Feb 02 18:07:06 2014 +0200
@@ -75,6 +75,9 @@
 	// Lex and preprocess the file
 	mLexer->ProcessFile (fileName);
 
+	mMainBuffer = new DataBuffer;
+	mOnEnterBuffer = new DataBuffer;
+	mMainLoopBuffer = new DataBuffer;
 	mCurrentMode = ETopLevelMode;
 	mNumStates = 0;
 	mNumEvents = 0;
@@ -868,16 +871,16 @@
 		Error ("label name `%1` conflicts with variable\n", labelName);
 
 	// See if a mark already exists for this label
-	for (UndefinedLabel& undf : mUndefinedLabels)
+	for (UndefinedLabel& label : mUndefinedLabels)
 	{
-		if (undf.name != labelName)
+		if (label.name != labelName)
 			continue;
 
-		mark = undf.target;
+		mark = label.target;
 		buffer()->AdjustMark (mark);
 
 		// No longer undefined
-		mUndefinedLabels.Remove (undf);
+		mUndefinedLabels.Remove (label);
 		break;
 	}
 
@@ -914,26 +917,22 @@
 	// Number
 	mLexer->MustGetNext (tkNumber);
 	comm->number = mLexer->GetToken()->text.ToLong();
-
 	mLexer->MustGetNext (tkColon);
 
 	// Name
 	mLexer->MustGetNext (tkSymbol);
 	comm->name = mLexer->GetToken()->text;
-
 	mLexer->MustGetNext (tkColon);
 
 	// Return value
 	mLexer->MustGetAnyOf ({tkInt, tkVoid, tkBool, tkStr});
 	comm->returnvalue = GetTypeByName (mLexer->GetToken()->text); // TODO
 	assert (comm->returnvalue != -1);
-
 	mLexer->MustGetNext (tkColon);
 
 	// Num args
 	mLexer->MustGetNext (tkNumber);
 	comm->numargs = mLexer->GetToken()->text.ToLong();
-
 	mLexer->MustGetNext (tkColon);
 
 	// Max args

mercurial