PascalABCVersion is intrinsic function (bug fix #395)
This commit is contained in:
parent
da373ae907
commit
87f4005e0a
|
|
@ -307,6 +307,7 @@ namespace PascalABCCompiler.SystemLibrary
|
|||
public static UnitDefinitionItem OMP_Available;
|
||||
public static UnitDefinitionItem OMP_ParallelFor;
|
||||
public static UnitDefinitionItem OMP_ParallelSections;
|
||||
public static UnitDefinitionItem PascalABCVersion;
|
||||
//native-->
|
||||
public static UnitDefinitionItem ObjectType;
|
||||
public static UnitDefinitionItem StringType;
|
||||
|
|
|
|||
|
|
@ -411,6 +411,7 @@ namespace PascalABCCompiler.TreeConverter
|
|||
public static string PointerToStringFunction_func_name = "PointerToString";
|
||||
public static string GetRuntimeSizeFunction_func_name = "GetRuntimeSize";
|
||||
public static string StrProcedure_func_name = "Str";
|
||||
public static string PascalABCVersion_func_name = "PascalABCVersion";
|
||||
public static string ChrUnicodeFunction_func_name = "ChrUnicode";
|
||||
public static string ExceptionName = "System.Exception";
|
||||
public static string value_in_accessor_name = "$value";
|
||||
|
|
|
|||
|
|
@ -285,6 +285,7 @@ namespace PascalABCCompiler.TreeConverter
|
|||
SystemLibrary.SystemLibInitializer.ObjectType = null;
|
||||
SystemLibrary.SystemLibInitializer.StringType = null;
|
||||
SystemLibrary.SystemLibInitializer.ConfigVariable = null;
|
||||
SystemLibrary.SystemLibInitializer.PascalABCVersion = null;
|
||||
}
|
||||
|
||||
internal bool SystemUnitAssigned = false;
|
||||
|
|
@ -360,6 +361,7 @@ namespace PascalABCCompiler.TreeConverter
|
|||
SystemLibrary.SystemLibInitializer.PointerToStringFunction = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.PointerToStringFunction_func_name);
|
||||
SystemLibrary.SystemLibInitializer.GetRuntimeSizeFunction = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.GetRuntimeSizeFunction_func_name);
|
||||
SystemLibrary.SystemLibInitializer.StrProcedure = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.StrProcedure_func_name);
|
||||
SystemLibrary.SystemLibInitializer.PascalABCVersion = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.PascalABCVersion_func_name);
|
||||
SystemLibrary.SystemLibInitializer.ChrUnicodeFunction = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.ChrUnicodeFunction_func_name);
|
||||
SystemLibrary.SystemLibInitializer.AssertProcedure = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.AssertProcedure);
|
||||
SystemLibrary.SystemLibInitializer.CheckRangeFunction = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.check_in_range);
|
||||
|
|
@ -453,6 +455,7 @@ namespace PascalABCCompiler.TreeConverter
|
|||
SystemLibrary.SystemLibInitializer.PointerToStringFunction = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.PointerToStringFunction_func_name);
|
||||
SystemLibrary.SystemLibInitializer.GetRuntimeSizeFunction = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.GetRuntimeSizeFunction_func_name);
|
||||
SystemLibrary.SystemLibInitializer.StrProcedure = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.StrProcedure_func_name);
|
||||
SystemLibrary.SystemLibInitializer.PascalABCVersion = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.PascalABCVersion_func_name);
|
||||
SystemLibrary.SystemLibInitializer.ChrUnicodeFunction = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.ChrUnicodeFunction_func_name);
|
||||
SystemLibrary.SystemLibInitializer.AssertProcedure = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.AssertProcedure);
|
||||
SystemLibrary.SystemLibInitializer.CheckRangeFunction = new SystemLibrary.UnitDefinitionItem(psystem_unit, compiler_string_consts.check_in_range);
|
||||
|
|
@ -5980,6 +5983,11 @@ namespace PascalABCCompiler.TreeConverter
|
|||
{
|
||||
is_format_allowed = true;
|
||||
}
|
||||
else if (SystemLibrary.SystemLibInitializer.PascalABCVersion.Equal(si))
|
||||
{
|
||||
return_value(new string_const_node(RevisionClass.FullVersion, get_location(_method_call)));
|
||||
return;
|
||||
}
|
||||
else if (SystemLibrary.SystemLibInitializer.ArrayCopyFunction.Equal(si))
|
||||
{
|
||||
if (_method_call.parameters != null && _method_call.parameters.expressions.Count == 1)
|
||||
|
|
@ -15194,7 +15202,10 @@ namespace PascalABCCompiler.TreeConverter
|
|||
{
|
||||
//return convertion_data_and_alghoritms.create_full_function_call(new expressions_list(),
|
||||
// si,lloc,blocks.converted_type,blocks.top_function,false);
|
||||
|
||||
if (SystemUnitAssigned && SystemLibrary.SystemLibInitializer.PascalABCVersion.Equal(si))
|
||||
{
|
||||
return new string_const_node(RevisionClass.FullVersion, get_location(_ident));
|
||||
}
|
||||
if (si.sym_info == SystemLibrary.SystemLibInitializer.NewProcedure.sym_info)
|
||||
{
|
||||
AddError(lloc, "EXPECTED_TYPE_AFTER_NEW");
|
||||
|
|
|
|||
Loading…
Reference in a new issue