This commit is contained in:
Бондарев Иван 2019-02-17 20:09:17 +01:00
parent 88e8b54b73
commit 1ea892432e
2 changed files with 38 additions and 36 deletions

View file

@ -2248,19 +2248,21 @@ namespace CodeCompletion
is_extensions_unit = true; is_extensions_unit = true;
} }
CodeCompletionController.comp_modules[_unit_module.file_name] = this.converter; CodeCompletionController.comp_modules[_unit_module.file_name] = this.converter;
foreach (string s in namespaces)
{
if (!ns_cache.ContainsKey(s))
{
NamespaceScope ns_scope = new NamespaceScope(s);
entry_scope.AddName(s, ns_scope);
ns_cache[s] = s;
}
}
DateTime start_time = DateTime.Now; DateTime start_time = DateTime.Now;
System.Diagnostics.Debug.WriteLine("intellisense parsing interface started " + System.Convert.ToInt32((DateTime.Now - start_time).TotalMilliseconds)); System.Diagnostics.Debug.WriteLine("intellisense parsing interface started " + System.Convert.ToInt32((DateTime.Now - start_time).TotalMilliseconds));
_unit_module.interface_part.visit(this); _unit_module.interface_part.visit(this);
System.Diagnostics.Debug.WriteLine("intellisense parsing interface ended " + System.Convert.ToInt32((DateTime.Now - start_time).TotalMilliseconds)); System.Diagnostics.Debug.WriteLine("intellisense parsing interface ended " + System.Convert.ToInt32((DateTime.Now - start_time).TotalMilliseconds));
foreach (string s in namespaces)
{
if (!ns_cache.ContainsKey(s))
{
NamespaceScope ns_scope = new NamespaceScope(s);
entry_scope.AddName(s,ns_scope);
ns_cache[s] = s;
}
}
start_time = DateTime.Now; start_time = DateTime.Now;
System.Diagnostics.Debug.WriteLine("intellisense parsing implementation started "+ System.Convert.ToInt32((DateTime.Now - start_time).TotalMilliseconds)); System.Diagnostics.Debug.WriteLine("intellisense parsing implementation started "+ System.Convert.ToInt32((DateTime.Now - start_time).TotalMilliseconds));
if (_unit_module.implementation_part != null) if (_unit_module.implementation_part != null)

View file

@ -30,42 +30,42 @@ namespace PascalABCCompiler.SemanticTree
public enum type_special_kind { none_kind, not_set_kind, array_kind, enum_kind, typed_file, binary_file, short_string, array_wrapper, record, set_type, base_set_type, diap_type, text_file }; public enum type_special_kind { none_kind, not_set_kind, array_kind, enum_kind, typed_file, binary_file, short_string, array_wrapper, record, set_type, base_set_type, diap_type, text_file };
public enum attribute_qualifier_kind {none_kind, return_kind, assembly_kind, param_kind, type_kind, field_kind, event_kind, property_kind, method_kind} public enum attribute_qualifier_kind {none_kind, return_kind, assembly_kind, param_kind, type_kind, field_kind, event_kind, property_kind, method_kind}
//Тип передачи параметра - по ссылке или по значению. //Тип передачи параметра - по ссылке или по значению.
public enum parameter_type {value,var,cnst}; public enum parameter_type { value, var, cnst };
//Тип базовой функции. //Тип базовой функции.
public enum basic_function_type public enum basic_function_type
{ {
none, none,
iadd,isub,imul,idiv,imod, igr,ism,igreq,ismeq,ieq,inoteq, ishl,ishr,ior,inot,ixor,iand, iunmin, iinc, idec, isinc, isdec, iassign, //signed integer (4 byte) iadd, isub, imul, idiv, imod, igr, ism, igreq, ismeq, ieq, inoteq, ishl, ishr, ior, inot, ixor, iand, iunmin, iinc, idec, isinc, isdec, iassign, //signed integer (4 byte)
uiadd, uisub, uimul, uidiv, uimod, uigr, uism, uigreq, uismeq, uieq, uinoteq, uishl, uishr, uior, uinot, uixor, uiand, uiunmin, uiinc, uidec, uisinc, uisdec, uiassign, //unsigned integer (4 byte) uiadd, uisub, uimul, uidiv, uimod, uigr, uism, uigreq, uismeq, uieq, uinoteq, uishl, uishr, uior, uinot, uixor, uiand, uiunmin, uiinc, uidec, uisinc, uisdec, uiassign, //unsigned integer (4 byte)
badd, bsub, bmul, bdiv, bmod, bgr, bsm, bgreq, bsmeq, beq, bnoteq, bshl, bshr, bor, bnot, bxor, band, bunmin, binc, bdec, bsinc, bsdec, bassign, //unsigned byte badd, bsub, bmul, bdiv, bmod, bgr, bsm, bgreq, bsmeq, beq, bnoteq, bshl, bshr, bor, bnot, bxor, band, bunmin, binc, bdec, bsinc, bsdec, bassign, //unsigned byte
sbadd, sbsub, sbmul, sbdiv, sbmod, sbgr, sbsm, sbgreq, sbsmeq, sbeq, sbnoteq, sbshl, sbshr, sbor, sbnot, sbxor, sband, sbunmin, sbinc, sbdec, sbsinc, sbsdec, sbassign, //signed byte sbadd, sbsub, sbmul, sbdiv, sbmod, sbgr, sbsm, sbgreq, sbsmeq, sbeq, sbnoteq, sbshl, sbshr, sbor, sbnot, sbxor, sband, sbunmin, sbinc, sbdec, sbsinc, sbsdec, sbassign, //signed byte
sadd,ssub,smul,sdiv,smod, sgr,ssm,sgreq,ssmeq,seq,snoteq, sshl,sshr,sor,snot,sxor,sand, sunmin, sinc, sdec, ssinc, ssdec, sassign, //short (2-byte) sadd, ssub, smul, sdiv, smod, sgr, ssm, sgreq, ssmeq, seq, snoteq, sshl, sshr, sor, snot, sxor, sand, sunmin, sinc, sdec, ssinc, ssdec, sassign, //short (2-byte)
usadd, ussub, usmul, usdiv, usmod, usgr, ussm, usgreq, ussmeq, useq, usnoteq, usshl, usshr, usor, usnot, usxor, usand, usunmin, usinc, usdec, ussinc, ussdec, usassign, //unsigned short (2 byte) usadd, ussub, usmul, usdiv, usmod, usgr, ussm, usgreq, ussmeq, useq, usnoteq, usshl, usshr, usor, usnot, usxor, usand, usunmin, usinc, usdec, ussinc, ussdec, usassign, //unsigned short (2 byte)
ladd,lsub,lmul,ldiv,lmod, lgr,lsm,lgreq,lsmeq,leq,lnoteq, lshl,lshr,lor,lnot,lxor,land, lunmin, linc, ldec, lsinc, lsdec, lassign, //long (8 byte) ladd, lsub, lmul, ldiv, lmod, lgr, lsm, lgreq, lsmeq, leq, lnoteq, lshl, lshr, lor, lnot, lxor, land, lunmin, linc, ldec, lsinc, lsdec, lassign, //long (8 byte)
uladd, ulsub, ulmul, uldiv, ulmod, ulgr, ulsm, ulgreq, ulsmeq, uleq, ulnoteq, ulshl, ulshr, ulor, ulnot, ulxor, uland, ulunmin, ulinc, uldec, ulsinc, ulsdec, ulassign, //unsigned long (8 byte) uladd, ulsub, ulmul, uldiv, ulmod, ulgr, ulsm, ulgreq, ulsmeq, uleq, ulnoteq, ulshl, ulshr, ulor, ulnot, ulxor, uland, ulunmin, ulinc, uldec, ulsinc, ulsdec, ulassign, //unsigned long (8 byte)
fadd,fsub,fmul,fdiv, fgr,fsm,fgreq,fsmeq,feq,fnoteq, funmin, fassign,//float fadd, fsub, fmul, fdiv, fgr, fsm, fgreq, fsmeq, feq, fnoteq, funmin, fassign,//float
dadd,dsub,dmul,ddiv, dgr,dsm,dgreq,dsmeq,deq,dnoteq, dunmin, dassign,//double dadd, dsub, dmul, ddiv, dgr, dsm, dgreq, dsmeq, deq, dnoteq, dunmin, dassign,//double
boolgr,boolsm,boolgreq,boolsmeq,booleq,boolnoteq,boolor,boolnot,boolxor,booland, boolassign, //boolean boolgr, boolsm, boolgreq, boolsmeq, booleq, boolnoteq, boolor, boolnot, boolxor, booland, boolassign, //boolean
chargr,charsm,chargreq,charsmeq,chareq,charnoteq, cinc, cdec, csinc, csdec, charassign, //char chargr, charsm, chargreq, charsmeq, chareq, charnoteq, cinc, cdec, csinc, csdec, charassign, //char
chartous,chartoi,chartoui,chartol,chartoul,chartof,chartod, chartob,chartosb,chartos, chartous, chartoi, chartoui, chartol, chartoul, chartof, chartod, chartob, chartosb, chartos,
btos,btous,btoi,btoui,btol,btoul,btof,btod, btosb,btochar, //byte to ... btos, btous, btoi, btoui, btol, btoul, btof, btod, btosb, btochar, //byte to ...
sbtos,sbtoi,sbtol,sbtof,sbtod, sbtob,sbtous,sbtoui,sbtoul,sbtochar,//signed byte to short, int, long, float, double sbtos, sbtoi, sbtol, sbtof, sbtod, sbtob, sbtous, sbtoui, sbtoul, sbtochar,//signed byte to short, int, long, float, double
stoi,stol,stof,stod, stob,stosb,stous,stoui,stoul,stochar, //short to ... stoi, stol, stof, stod, stob, stosb, stous, stoui, stoul, stochar, //short to ...
ustoi,ustoui,ustol,ustoul,ustof,ustod, ustob,ustosb,ustos,ustochar, //unsigned short to ... ustoi, ustoui, ustol, ustoul, ustof, ustod, ustob, ustosb, ustos, ustochar, //unsigned short to ...
itol,itof,itod, itob,itosb,itos,itous,itoui,itoul,itochar, //integer to ... itol, itof, itod, itob, itosb, itos, itous, itoui, itoul, itochar, //integer to ...
uitol,uitoul, uitob,uitosb,uitos,uitous,uitoi,uitof,uitod,uitochar, //uint to ... uitol, uitoul, uitob, uitosb, uitos, uitous, uitoi, uitof, uitod, uitochar, //uint to ...
ltof,ltod, ltob,ltosb,ltos,ltous,ltoi,ltoui,ltoul,ltochar, //long to ... ltof, ltod, ltob, ltosb, ltos, ltous, ltoi, ltoui, ltoul, ltochar, //long to ...
ultob,ultosb,ultos,ultous,ultoi,ultoui,ultol,ultochar,ultof,ultod, //ulong to ... ultob, ultosb, ultos, ultous, ultoi, ultoui, ultol, ultochar, ultof, ultod, //ulong to ...
ftod, ftob,ftosb,ftos,ftous,ftoi,ftoui,ftol,ftoul,ftochar, //float to ... ftod, ftob, ftosb, ftos, ftous, ftoi, ftoui, ftol, ftoul, ftochar, //float to ...
dtob,dtosb,dtos,dtous,dtoi,dtoui,dtol,dtoul,dtof, dtochar, dtob, dtosb, dtos, dtous, dtoi, dtoui, dtol, dtoul, dtof, dtochar,
objassign,objeq,objnoteq, //присваивание и эквивалентность объектов по ссылке. objassign, objeq, objnoteq, //присваивание и эквивалентность объектов по ссылке.
//write,writei,writed,writec,writeb,read,readi,readd,readc,readb,expd,absd,absi //temporary functions (Нужны только на начальном этапе отладки. Потом обязательно удалить.) //write,writei,writed,writec,writeb,read,readi,readd,readc,readb,expd,absd,absi //temporary functions (Нужны только на начальном этапе отладки. Потом обязательно удалить.)
objtoobj, boolinc, booldec, boolsinc, boolsdec, booltoi, enumgr, enumgreq, enumsm, enumsmeq, objtoobj, boolinc, booldec, boolsinc, boolsdec, booltoi, enumgr, enumgreq, enumsm, enumsmeq,
booltob, booltosb, booltos, booltous, booltoui, booltol, booltoul, booltob, booltosb, booltos, booltous, booltoui, booltol, booltoul,
ltop, ptol ltop, ptol
}; };
public enum runtime_statement_type { invoke_delegate, ctor_delegate, begin_invoke_delegate, end_invoke_delegate }; public enum runtime_statement_type { invoke_delegate, ctor_delegate, begin_invoke_delegate, end_invoke_delegate };