예제 #1
0
파일: VM.cs 프로젝트: Jornason/UniLua
		private void V_DoJump( CallInfo ci, Instruction i, int e )
		{
			int a = i.GETARG_A();
			if( a > 0 )
				F_Close(Stack[ci.BaseIndex + (a-1)]);
			ci.SavedPc += i.GETARG_sBx() + e;
		}
예제 #2
0
파일: Coder.cs 프로젝트: xuxiandi/UniLua
		public static int Code( FuncState fs, Instruction i )
		{
			DischargeJpc( fs ); // `pc' will change

			while( fs.Proto.Code.Count <= fs.Pc )
			{
				fs.Proto.Code.Add( new Instruction(LuaLimits.MAX_INT) );
			}
			fs.Proto.Code[ fs.Pc ] = i;

			while( fs.Proto.LineInfo.Count <= fs.Pc )
			{
				fs.Proto.LineInfo.Add( LuaLimits.MAX_INT );
			}
			fs.Proto.LineInfo[ fs.Pc ] = fs.Lexer.LastLine;

			return fs.Pc++;
		}
예제 #3
0
파일: VM.cs 프로젝트: Jornason/UniLua
		private void V_NotImplemented( Instruction i )
		{
			ULDebug.LogError( "[VM] ==================================== Not Implemented Instruction: " + i );
			// throw new NotImplementedException();
		}