📄 semantic.c
字号:
return( currflags );
}
void SemCheckMemFlags( FullMemFlags * currflags, ResMemFlags loadopts,
ResMemFlags memopts, ResMemFlags pureopts )
/********************************************************************/
{
if (!currflags->loadOptGiven) {
currflags->flags |= loadopts;
}
if (!currflags->memOptGiven) {
currflags->flags |= memopts;
}
if (!currflags->purityOptGiven) {
currflags->flags |= pureopts;
}
/* If the user set the resource to be IMPURE but doesn't give a mem option*/
/* set the resource to be non-discardable. */
/* This seems to be what Microsoft is doing (test this with the sample */
/* program clock). */
if (currflags->purityOptGiven && !currflags->memOptGiven) {
if (!(currflags->flags & MEMFLAG_PURE)) {
currflags->flags &= ~MEMFLAG_DISCARDABLE;
}
}
}
extern char *SemTokenToString( uint_8 token )
/********************************************/
{
switch (token) {
case Y_LPAREN:
return( "(" );
break;
case Y_RPAREN:
return( ")" );
break;
case Y_LSQ_BRACKET:
return( "[" );
break;
case Y_RSQ_BRACKET:
return( "]" );
break;
case Y_PLUS:
return( "+" );
break;
case Y_MINUS:
return( "-" );
break;
case Y_BITNOT:
return( "~" );
break;
case Y_NOT:
return( "!" );
break;
case Y_TIMES:
return( "*" );
break;
case Y_DIVIDE:
return( "/" );
break;
case Y_MOD:
return( "%" );
break;
case Y_SHIFTL:
return( "<<" );
break;
case Y_SHIFTR:
return( ">>" );
break;
case Y_GT:
return( ">" );
break;
case Y_LT:
return( "<" );
break;
case Y_GE:
return( ">=" );
break;
case Y_LE:
return( "<=" );
break;
case Y_EQ:
return( "==" );
break;
case Y_NE:
return( "!=" );
break;
case Y_BITAND:
return( "&" );
break;
case Y_BITXOR:
return( "^" );
break;
case Y_BITOR:
return( "|" );
break;
case Y_AND:
return( "&&" );
break;
case Y_OR:
return( "||" );
break;
case Y_QUESTION:
return( "?" );
break;
case Y_COLON:
return( ":" );
break;
case Y_COMMA:
return( "," );
break;
case Y_ACCELERATORS:
return( "accelerators" );
break;
case Y_ALT:
return( "alt" );
break;
case Y_ASCII:
return( "ascii" );
break;
case Y_AUTO3STATE:
return( "auto3state" );
break;
case Y_AUTOCHECKBOX:
return( "autocheckbox" );
break;
case Y_AUTORADIOBUTTON:
return( "autoradiobutton" );
break;
case Y_BEGIN:
return( "begin" );
break;
case Y_BITMAP:
return( "bitmap" );
break;
case Y_BLOCK:
return( "block" );
break;
case Y_BUTTON:
return( "button" );
break;
case Y_CAPTION:
return( "caption" );
break;
case Y_CHARACTERISTICS:
return( "characteristics" );
break;
case Y_CHECKBOX:
return( "checkbox" );
break;
case Y_CHECKED:
return( "checked" );
break;
case Y_CLASS:
return( "class" );
break;
case Y_CODEPAGE:
return( "code_page" );
break;
case Y_COMBOBOX:
return( "combobox" );
break;
case Y_CONTROL:
return( "control" );
break;
case Y_CTEXT:
return( "ctext" );
break;
case Y_CURSOR:
return( "cursor" );
break;
case Y_DEFPUSHBUTTON:
return( "defpushbutton" );
break;
case Y_DIALOG:
return( "dialog" );
break;
case Y_DISCARDABLE:
return( "discardable" );
break;
case Y_EDIT:
return( "edit" );
case Y_EDITTEXT:
return( "edittext" );
break;
case Y_END:
return( "end" );
break;
case Y_ERRTABLE:
return( "errtable" );
break;
case Y_EXSTYLE:
return( "exstyle" );
break;
case Y_FILEFLAGS:
return( "fileflags" );
break;
case Y_FILEFLAGSMASK:
return( "fileflagsmask" );
break;
case Y_FILEOS:
return( "fileos" );
break;
case Y_FILESUBTYPE:
return( "filesubtype" );
break;
case Y_FILETYPE:
return( "filetype" );
break;
case Y_FILEVERSION:
return( "fileversion" );
break;
case Y_FIXED:
return( "fixed" );
break;
case Y_FONT:
return( "font" );
break;
case Y_GRAYED:
return( "grayed" );
break;
case Y_GROUPBOX:
return( "groupbox" );
break;
case Y_HELP:
return( "help" );
break;
case Y_ICON:
return( "icon" );
break;
case Y_IMPURE:
return( "impure" );
break;
case Y_INACTIVE:
return( "inactive" );
break;
case Y_LANGUAGE:
return( "language" );
break;
case Y_LISTBOX:
return( "listbox" );
break;
case Y_LOADONCALL:
return( "loadoncall" );
break;
case Y_LTEXT:
return( "ltext" );
break;
case Y_MENU:
return( "menu" );
break;
case Y_MENUBARBREAK:
return( "menubarbreak" );
break;
case Y_MENUBREAK:
return( "menubreak" );
break;
case Y_MENUITEM:
return( "menuitem" );
break;
case Y_MESSAGETABLE:
return( "messagetable" );
break;
case Y_MOVEABLE:
return( "moveable" );
break;
case Y_NOINVERT:
return( "noinvert" );
break;
case Y_OWNERDRAW:
return( "ownerdraw" );
break;
case Y_POPUP:
return( "popup" );
break;
case Y_POUND_PRAGMA:
return( "#pragma" );
break;
case Y_PRELOAD:
return( "preload" );
break;
case Y_PRODUCTVERSION:
return( "productversion" );
break;
case Y_PURE:
return( "pure" );
break;
case Y_PUSHBUTTON:
return( "pushbutton" );
break;
case Y_RADIOBUTTON:
return( "radiobutton" );
break;
case Y_RCDATA:
return( "rcdata" );
break;
case Y_RCINCLUDE:
return( "rcinclude" );
break;
case Y_RTEXT:
return( "rtext" );
break;
case Y_SCROLLBAR:
return( "scrollbar" );
break;
case Y_SEPARATOR:
return( "separator" );
break;
case Y_SHIFT:
return( "shift" );
break;
case Y_STATE3:
return( "state3" );
break;
case Y_STATIC:
return( "static" );
case Y_STRINGTABLE:
return( "stringtable" );
break;
case Y_STYLE:
return( "style" );
break;
case Y_VALUE:
return( "value" );
break;
case Y_VERSION:
return( "version" );
break;
case Y_VERSIONINFO:
return( "versioninfo" );
break;
case Y_VIRTKEY:
return( "virtkey" );
break;
case 0:
return( "end of file" );
break;
default:
return( "" );
break;
}
}
extern void SemanticInitStatics( void )
/*************************************/
{
memset( &curLang, 0, sizeof( WResLangType ) );
resourceHasLang = 0;
memset( &resourceLang, 0, sizeof( WResLangType ) );
MSFormatHandle = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -