Lua1.1 입력 준비
/*
** Generate opcode stored on string and execute global statement. Return 0 on
** success or 1 on error.
*/
int lua_dostring (char *string)
{
if (lua_openstring (string)) return 1;
if (lua_parse ()) return 1;
lua_closestring();
return 0;
}
입력 문자열, 문법 분석을 열고 입력을 닫습니다.우리 루아오픈string은 무슨 inout을 했어요?c 파일
/*
** Function to open a string to be input unit
*/
int lua_openstring (char *s)
{
lua_linenumber = 1;
lua_setinput (stringinput);
st = s;
{
char sn[64];
sprintf (sn, "String: %10.10s...", s);
if (lua_addfile (sn)) return 1;
}
return 0;
}
시작 줄 번호 1로 설정하기 문법 분석기 설정 입력 luasetinput (lex.c 중).입력한 문자열 주소를 st에 저장하고 파일 이름을 파일 이름 그룹에 저장합니다.luaaddfile(table.c)
void lua_setinput (Input fn)
{
current = ' ';
input = fn;
}
현재 문자와 input 리셋을 설정합니다.여기는stringinputinout입니다.c 파일:
/*
** Function to get the next character from the input string
*/
static int stringinput (void)
{
st++;
return (*(st-1));
}
주석에서 입력한 문자열에서 문자를 얻을 수 있도록 분명히 말했다.lua_addfile은 파일을 파일 그룹에 추가합니다.table.c 파일
/*
** Add a file name at file table, checking overflow. This function also set
** the external variable "lua_filename" with the function filename set.
** Return 0 on success or 1 on error.
*/
int lua_addfile (char *fn)
{
if (lua_nfile >= MAXFILE-1)
{
lua_error ("too many files");
return 1;
}
if ((lua_file[lua_nfile++] = strdup (fn)) == NULL)
{
lua_error ("not enough memory");
return 1;
}
return 0;
}
또 봐봐 루아dofile는 뭐하는 거야?opcode.c 파일:
/*
** Open file, generate opcode and execute global statement. Return 0 on
** success or 1 on error.
*/
int lua_dofile (char *filename)
{
if (lua_openfile (filename)) return 1;
if (lua_parse ()) { lua_closefile (); return 1; }
lua_closefile ();
return 0;
}
파일을 열고, 문법 분석을 하고, 파일을 닫습니다.inout.c 파일
/*
** Function to open a file to be input unit.
** Return 0 on success or 1 on error.
*/
int lua_openfile (char *fn)
{
lua_linenumber = 1;
lua_setinput (fileinput);
fp = fopen (fn, "r");
if (fp == NULL) return 1;
if (lua_addfile (fn)) return 1;
return 0;
}
줄 번호를 설정하고, 문법 분석의 입력을 설정합니다. 여기서 호출하는 것은lex입니다.c의 luasetinput.이러한 처리를 통해 문법 분석을 할 때 표준 입력이나 파일 입력의 개념이 없어졌고 문법 분석은 필요할 때 함수 입력 지침에서 문자를 얻기만 하면 서로 다른 입력은 이곳에서 투명해졌다.파일을 연 후 luaaddfile, 파일 이름을 파일 이름 그룹에 저장합니다.inout.c
/*
** Function to get the next character from the input file
*/
static int fileinput (void)
{
int c = fgetc (fp);
return (c == EOF ? 0 : c);
}
파일에서 문자를 읽습니다.파일이 끝났으면 0으로 돌아갑니다.여기까지, 어법 분석의 입력은 이미 준비가 되었다.코드를 분석해 보면 루아든Dostring 또는 Luadofile, 모두 lua 호출됨parse.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Neovim을 위한 자동 완성NeoVim으로 생산성을 높일 수 있는 가장 멋진 기능 중 하나는 자동 완성이므로 성능에 따라 플러그인을 선택할 수 있습니다. YouCompleteMe Coc.nvim 이 플러그인은 사용하기 좋지만 Javascrip...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.