// return `ReturnType', `FuncName', `ParameterTypes' private static int FFI_ParseSignature(ILuaState lua) { var signature = lua.ToString(1); var result = FuncSignatureParser.Parse(lua, signature); if (result.ReturnType != null) { lua.PushString(result.ReturnType); } else { lua.PushNil(); } lua.PushString(result.FuncName); if (result.ParameterTypes != null) { lua.NewTable(); for (int i = 0; i < result.ParameterTypes.Length; ++i) { lua.PushString(result.ParameterTypes[i]); lua.RawSetI(-2, i + 1); } } else { lua.PushNil(); } return(3); }
public static FuncSignature Parse( ILuaState lua, string signature) { var loadinfo = new StringLoadInfo(signature); var parser = new FuncSignatureParser(); parser.Lexer = new LLex(lua, loadinfo, signature); parser.Result = new FuncSignature(); return(parser.parse(signature)); }
public static FuncSignature Parse( ILuaState lua, string signature ) { var loadinfo = new StringLoadInfo( signature ); var parser = new FuncSignatureParser(); parser.Lexer = new LLex( lua, loadinfo, signature ); parser.Result = new FuncSignature(); return parser.parse( signature ); }