diff --git a/Zenith-latest-2020-07-21-16_53_01.iso b/Zenith-latest-2020-07-22-00_58_58.iso similarity index 99% rename from Zenith-latest-2020-07-21-16_53_01.iso rename to Zenith-latest-2020-07-22-00_58_58.iso index 9eba26d4..1563fc5f 100644 Binary files a/Zenith-latest-2020-07-21-16_53_01.iso and b/Zenith-latest-2020-07-22-00_58_58.iso differ diff --git a/src/Compiler/CompilerB.HH b/src/Compiler/CompilerB.HH index fd061fe0..557e585a 100755 --- a/src/Compiler/CompilerB.HH +++ b/src/Compiler/CompilerB.HH @@ -1,76 +1,70 @@ #help_index "Compiler" extern U0 CInit(Bool first); -public extern I64 ExeFile(U8 *name,I64 ccf_flags=0); -public extern I64 ExeFile2(U8 *name,I64 ccf_flags=0); -public extern I64 ExePrint(U8 *format,...); -public extern I64 ExePrint2(U8 *format,...); -public extern I64 ExePutS(U8 *buf,U8 *filename=NULL,I64 ccf_flags=0, - CLexHashTableContext *htc=NULL); -public extern I64 ExePutS2(U8 *buf,U8 *filename=NULL,I64 ccf_flags=0); -public _extern _LAST_FUN I64 LastFun(I64 argc,I64 *argv); -public extern I64 RunFile(U8 *name,I64 ccf_flags=0,...); -public extern I64 RunFile2(U8 *name,I64 ccf_flags=0,...); +public extern I64 ExeFile(U8 *name, I64 ccf_flags=0); +public extern I64 ExeFile2(U8 *name, I64 ccf_flags=0); +public extern I64 ExePrint(U8 *format, ...); +public extern I64 ExePrint2(U8 *format, ...); +public extern I64 ExePutS(U8 *buf, U8 *filename=NULL, I64 ccf_flags=0, CLexHashTableContext *htc=NULL); +public extern I64 ExePutS2(U8 *buf, U8 *filename=NULL, I64 ccf_flags=0); +public _extern _LAST_FUN I64 LastFun(I64 argc, I64 *argv); +public extern I64 RunFile(U8 *name, I64 ccf_flags=0, ...); +public extern I64 RunFile2(U8 *name, I64 ccf_flags=0, ...); public extern CCompGlobals cmp; #help_index "Compiler/Directive" #help_file "::/Doc/Directives" -public extern Bool Echo(Bool val); -public extern Bool OptionGet(I64 num); -public extern I64 PassTrace(I64 i=0b1001111101); -extern U0 StreamDir(); -public extern I64 StreamExePrint(U8 *format,...); -public extern U0 StreamPrint(U8 *format,...); -public extern Bool Trace(Bool val=ON); +public extern Bool Echo(Bool val); +public extern Bool OptionGet(I64 num); +public extern I64 PassTrace(I64 i=0b1001111101); + extern U0 StreamDir(); +public extern I64 StreamExePrint(U8 *format, ...); +public extern U0 StreamPrint(U8 *format, ...); +public extern Bool Trace(Bool val=ON); #help_index "Compiler/Lex" #help_file "::/Doc/Lex" extern U0 ClassMemberListDel(CHashClass *c); -public extern U0 CompCtrlDel(CCompCtrl *cc); -public extern CCompCtrl *CompCtrlNew(U8 *buf=NULL,I64 flags=0,U8 *filename=NULL); -public extern I64 CompCtrlSize(CCompCtrl *cc); -public extern I64 IsLexExpression2Bin( - CCompCtrl *cc,U8 **machine_code); //FALSE=no error -public extern I64 Lex(CCompCtrl *cc); -public extern U0 LexAttachDoc(CCompCtrl *cc,CLexFile *tmpf=NULL, - CDoc *doc=NULL,U8 *abs_filename=NULL,CDocEntry *doc_e=NULL,I64 col=0); -public extern CD2I32 *LexD2I32(CCompCtrl *cc,CD2I32 *p); -public extern CD3I32 *LexD3I32(CCompCtrl *cc,CD3I32 *p); -public extern U0 LexExcept(CCompCtrl *cc,U8 *str=NULL); -public extern I64 LexExpression(CCompCtrl *cc); -public extern U8 *LexExpression2Bin(CCompCtrl *cc,I64 *_type=NULL); -public extern F64 LexExpressionF64(CCompCtrl *cc); -public extern I64 LexExpressionI64(CCompCtrl *cc); -public extern U8 *LexExtStr(CCompCtrl *cc,I64 *_size=NULL,Bool lex_next=TRUE); -public extern U8 *LexFirstRemove(CCompCtrl *cc,U8 *marker,I64 _len=NULL); -public extern I64 LexCharGet(CCompCtrl *cc); -public extern U0 LexPopNoRestore(CCompCtrl *cc); -public extern U0 LexPopRestore(CCompCtrl *cc); -public extern U0 LexPush(CCompCtrl *cc); -public extern U0 LexPutLine(CCompCtrl *cc,U8 *start); -public extern U0 LexPutPos(CCompCtrl *cc); -public extern U0 LexPutToken(CCompCtrl *cc); -public extern U0 LexSkipEol(CCompCtrl *cc); -public extern U8 *LexStatement2Bin( - CCompCtrl *cc,I64 *_type,I64 comp_flags=CMPF_PRS_SEMICOLON); -public extern U0 LexWarn(CCompCtrl *cc,U8 *str=NULL); -extern CMemberList *MemberClassBaseFind( - CHashClass *needle_class,CHashClass *haystack_class); -public extern CMemberList *MemberFind(U8 *needle_str,CHashClass *haystack_class); +public extern U0 CompCtrlDel(CCompCtrl *cc); +public extern CCompCtrl *CompCtrlNew(U8 *buf=NULL, I64 flags=0, U8 *filename=NULL); +public extern I64 CompCtrlSize(CCompCtrl *cc); +public extern I64 IsLexExpression2Bin(CCompCtrl *cc, U8 **machine_code); //FALSE=no error +public extern I64 Lex(CCompCtrl *cc); +public extern U0 LexAttachDoc(CCompCtrl *cc, CLexFile *tmpf=NULL, CDoc *doc=NULL, + U8 *abs_filename=NULL, CDocEntry *doc_e=NULL, I64 col=0); +public extern CD2I32 *LexD2I32(CCompCtrl *cc, CD2I32 *p); +public extern CD3I32 *LexD3I32(CCompCtrl *cc, CD3I32 *p); +public extern U0 LexExcept(CCompCtrl *cc, U8 *str=NULL); +public extern I64 LexExpression(CCompCtrl *cc); +public extern U8 *LexExpression2Bin(CCompCtrl *cc, I64 *_type=NULL); +public extern F64 LexExpressionF64(CCompCtrl *cc); +public extern I64 LexExpressionI64(CCompCtrl *cc); +public extern U8 *LexExtStr(CCompCtrl *cc, I64 *_size=NULL, Bool lex_next=TRUE); +public extern U8 *LexFirstRemove(CCompCtrl *cc, U8 *marker, I64 _len=NULL); +public extern I64 LexCharGet(CCompCtrl *cc); +public extern U0 LexPopNoRestore(CCompCtrl *cc); +public extern U0 LexPopRestore(CCompCtrl *cc); +public extern U0 LexPush(CCompCtrl *cc); +public extern U0 LexPutLine(CCompCtrl *cc, U8 *start); +public extern U0 LexPutPos(CCompCtrl *cc); +public extern U0 LexPutToken(CCompCtrl *cc); +public extern U0 LexSkipEol(CCompCtrl *cc); +public extern U8 *LexStatement2Bin(CCompCtrl *cc, I64 *_type, I64 comp_flags=CMPF_PRS_SEMICOLON); +public extern U0 LexWarn(CCompCtrl *cc, U8 *str=NULL); + extern CMemberList *MemberClassBaseFind(CHashClass *needle_class, CHashClass *haystack_class); +public extern CMemberList *MemberFind(U8 *needle_str, CHashClass *haystack_class); extern U0 MemberListDel(CMemberList *tmpm); -public extern I64 MemberMetaData(U8 *st,CMemberList *ml); -public extern CMemberListMeta *MemberMetaFind(U8 *st,CMemberList *ml); -public extern CHashClass *OptClassFwd(CHashClass *tmpc); -public extern I64 ParseKeyWord(CCompCtrl *cc); +public extern I64 MemberMetaData(U8 *st, CMemberList *ml); +public extern CMemberListMeta *MemberMetaFind(U8 *st, CMemberList *ml); +public extern CHashClass *OptClassFwd(CHashClass *tmpc); +public extern I64 ParseKeyWord(CCompCtrl *cc); #help_index "Compiler;Cmd Line (Typically)" -extern I64 Comp(U8 *filename, - U8 *map_name=NULL,U8 *out_name=NULL,U8 mapfile_drive_let=0); + extern I64 Comp(U8 *filename, U8 *map_name=NULL, U8 *out_name=NULL, U8 mapfile_drive_let=0); #help_index "Debugging/Unassemble" -public extern U8 *U(U8 *rip,I64 count=20,I64 seg_size=64); -public extern U0 Ui(U8 *buf,U8 **_rip,I64 seg_size=64, - I64 *_jmp_dst=NULL,Bool just_ins=FALSE); -public extern I64 Un(U8 *rip,I64 count=0x80,I64 seg_size=64); +public extern U8 *U(U8 *rip, I64 count=20, I64 seg_size=64); +public extern U0 Ui(U8 *buf, U8 **_rip, I64 seg_size=64, I64 *_jmp_dst=NULL, Bool just_ins=FALSE); +public extern I64 Un(U8 *rip, I64 count=0x80, I64 seg_size=64); extern CUAsmGlobals uasm; #help_index "Hash/System" diff --git a/src/Home/FilesRefactored.DD b/src/Home/FilesRefactored.DD index fbde459d..2d90f774 100755 --- a/src/Home/FilesRefactored.DD +++ b/src/Home/FilesRefactored.DD @@ -38,6 +38,7 @@ StartOS.CC /Compiler/ CompilerA.HH + CompilerB.HH /Kernel/ KStart64.CC