Изменено представление таблицы символов
This commit is contained in:
parent
a8b5d90383
commit
cb4b0a3e72
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "3";
|
||||
public const string Build = "5";
|
||||
public const string Revision = "1641";
|
||||
public const string Revision = "1642";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%COREVERSION%=5
|
||||
%REVISION%=1641
|
||||
%MINOR%=3
|
||||
%REVISION%=1642
|
||||
%COREVERSION%=5
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.3.5.1641'
|
||||
!define VERSION '3.3.5.1642'
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace System.Linq
|
|||
|
||||
namespace SymbolTable
|
||||
{
|
||||
public class AreaNodesList
|
||||
/*public class AreaNodesList
|
||||
{
|
||||
public override string ToString() => data.Take(Count).JoinIntoString();
|
||||
|
||||
|
|
@ -53,10 +53,6 @@ namespace SymbolTable
|
|||
return;
|
||||
//throw new Exception("Ошибка при добавлении области видимости к идентефикатору: такая область уже существует");
|
||||
}
|
||||
/*int k=i;
|
||||
for (i = Count;i >= k+1; i--) data[i]=data[i-1];
|
||||
count++;
|
||||
data[i]=node;*/
|
||||
data.Insert(i, node);
|
||||
}
|
||||
|
||||
|
|
@ -89,6 +85,6 @@ namespace SymbolTable
|
|||
set{data[index]=value; }
|
||||
}
|
||||
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
|
|
@ -10,76 +10,25 @@ namespace SymbolTable
|
|||
/// <summary>
|
||||
/// Динамическая хеш таблица строк
|
||||
/// </summary>
|
||||
public class DSHashTable
|
||||
public class SymbolsDictionary
|
||||
{
|
||||
public override string ToString() => dict.SkipWhile(x=>x.Key != "").Skip(1).JoinIntoString(Environment.NewLine);
|
||||
public override string ToString() => dict.SkipWhile(x => x.Key != "").Skip(1).JoinIntoString(Environment.NewLine);
|
||||
|
||||
/*private int count;
|
||||
private int hash_size
|
||||
public Dictionary<string, HashTableNode> dict;
|
||||
|
||||
public SymbolsDictionary()
|
||||
{
|
||||
get
|
||||
{
|
||||
return hash_arr.Length;
|
||||
}
|
||||
dict = new Dictionary<string, HashTableNode>();
|
||||
}
|
||||
|
||||
private HashTableNode[] hash_arr;
|
||||
|
||||
private int HashFunc(string s)
|
||||
public SymbolsDictionary(int start_size)
|
||||
{
|
||||
int n = 0;
|
||||
for (int i = 0; i < s.Length; i++)
|
||||
n = 127 * n + s[i] * 7;//137
|
||||
return Math.Abs(n % hash_size);
|
||||
}
|
||||
|
||||
private System.Collections.Generic.Dictionary<int, object> ht = new System.Collections.Generic.Dictionary<int, object>();*/
|
||||
|
||||
public Dictionary<string,HashTableNode> dict = new Dictionary<string, HashTableNode>();
|
||||
|
||||
/*private int GetHash(string s)
|
||||
{
|
||||
int hash = HashFunc(s);
|
||||
int i = 1;
|
||||
ht.Clear();
|
||||
while (hash_arr[hash] != null)
|
||||
{
|
||||
if (hash_arr[hash].Name == s) return hash;
|
||||
i = i * 11;
|
||||
hash = Math.Abs((hash + i) % hash_size);
|
||||
if (ht.ContainsKey(hash))
|
||||
Resize(hash_size * 2);
|
||||
else
|
||||
ht[hash] = ht;
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
|
||||
private void Resize(int new_size)
|
||||
{
|
||||
HashTableNode[] ha = new HashTableNode[new_size];
|
||||
for (int i = 0; i < new_size; i++) ha[i] = null;
|
||||
count = 0;
|
||||
HashTableNode[] hat = hash_arr;
|
||||
hash_arr = ha;
|
||||
if (hat.Length > new_size) return;
|
||||
for (int i = 0; i < hat.Length; i++)
|
||||
if (hat[i] != null) Add(hat[i]);
|
||||
}*/
|
||||
|
||||
|
||||
public DSHashTable(int start_size)
|
||||
{
|
||||
//hash_arr = new HashTableNode[start_size];
|
||||
//ClearTable();
|
||||
dict = new Dictionary<string, HashTableNode>(start_size);
|
||||
}
|
||||
|
||||
public void ClearTable()
|
||||
{
|
||||
dict.Clear();
|
||||
//count = 0;
|
||||
//for (int i = 0; i < hash_size; i++)
|
||||
// hash_arr[i] = null;
|
||||
}
|
||||
|
||||
public HashTableNode Add(string name)
|
||||
|
|
@ -92,24 +41,6 @@ namespace SymbolTable
|
|||
dict[name] = node;
|
||||
}
|
||||
return node;
|
||||
|
||||
/*if (!dict.ContainsKey(name))
|
||||
{
|
||||
var node = new HashTableNode(name);
|
||||
dict[name] = node;
|
||||
return node;
|
||||
}
|
||||
return dict[name];*/
|
||||
|
||||
/*if (count / hash_size * 100 > SymbolTableConstants.HashTable_StartResise)
|
||||
Resize(hash_size + hash_size / 100 * SymbolTableConstants.HashTable_ProcResize);
|
||||
int tn = GetHash(node.Name);
|
||||
if (hash_arr[tn] == null)
|
||||
{
|
||||
hash_arr[tn] = node;
|
||||
count++;
|
||||
}
|
||||
return hash_arr[tn];*/
|
||||
}
|
||||
|
||||
public HashTableNode Find(string name)
|
||||
|
|
@ -117,16 +48,6 @@ namespace SymbolTable
|
|||
HashTableNode node = null;
|
||||
dict.TryGetValue(name, out node);
|
||||
return node;
|
||||
/*if (dict.ContainsKey(name))
|
||||
return dict[name];
|
||||
else return null;*/
|
||||
|
||||
/*int h = GetHash(name);
|
||||
//if (hash_arr[h] != null)
|
||||
// return hash_arr[h];
|
||||
return hash_arr[h];*/
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -103,180 +103,7 @@ namespace PascalABCCompiler.TreeConverter
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*public class SymbolInfoList
|
||||
{
|
||||
|
||||
//private readonly name_information_type _name_information_type;
|
||||
|
||||
public List<SymbolInfo> list;
|
||||
|
||||
|
||||
public List<SymbolInfo>()
|
||||
{
|
||||
list = new List<SymbolInfo>(SymbolTable.SymbolTableConstants.InfoList_StartSize);
|
||||
}
|
||||
|
||||
public List<SymbolInfo>(SymbolInfo inf)
|
||||
{
|
||||
list = new List<SymbolInfo>(SymbolTable.SymbolTableConstants.InfoList_StartSize);
|
||||
list.Add(inf);
|
||||
}
|
||||
|
||||
public SymbolInfo this[int key]
|
||||
{
|
||||
get
|
||||
{
|
||||
return list[key];
|
||||
}
|
||||
set
|
||||
{
|
||||
list[key] = value;
|
||||
}
|
||||
}
|
||||
|
||||
public List<SymbolInfo> Copy()
|
||||
{
|
||||
List<SymbolInfo> sil = new List<SymbolInfo>();
|
||||
sil.list = new List<SymbolInfo>(this.list);
|
||||
return sil;
|
||||
}
|
||||
|
||||
public void Add(SymbolInfo value)
|
||||
{
|
||||
list.Add(value);
|
||||
}
|
||||
public void AddRange(List<SymbolInfo> value)
|
||||
{
|
||||
if(value != null)
|
||||
list.AddRange(value.list);
|
||||
}
|
||||
|
||||
public SymbolInfo FirstOrDefault()
|
||||
{
|
||||
if (Count() > 0)
|
||||
return list[0];
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public SymbolInfo LastOrDefault()
|
||||
{
|
||||
if (Count() > 0)
|
||||
return list[list.Count - 1];
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public int IndexOf(SymbolInfo x)
|
||||
{
|
||||
for (int i = 0; i < list.Count; ++i)
|
||||
if (list[i] == x)
|
||||
return i;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int Count()
|
||||
{
|
||||
if (list != null)
|
||||
return list.Count;
|
||||
return 0;
|
||||
}
|
||||
|
||||
public bool HasOnlyExtensionMethods()
|
||||
{
|
||||
for (int i = 0; i < list.Count; ++i)
|
||||
if (!(list[i].sym_info is function_node && (list[i].sym_info as function_node).is_extension_method))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Insert(int index, SymbolInfo item)
|
||||
{
|
||||
if (list != null)
|
||||
list.Insert(index, item);
|
||||
}
|
||||
|
||||
public void RemoveAt(int index)
|
||||
{
|
||||
if(list != null)
|
||||
list.RemoveAt(index);
|
||||
}
|
||||
|
||||
public void RemoveRange(int index, int count)
|
||||
{
|
||||
if (list != null)
|
||||
list.RemoveRange(index, count);
|
||||
}
|
||||
|
||||
public List<SymbolInfo> GetRange(int index, int count)
|
||||
{
|
||||
List<SymbolInfo> temp = new List<SymbolInfo>();
|
||||
temp.list = list.GetRange(index, count);
|
||||
return temp;
|
||||
}
|
||||
|
||||
public override bool Equals(System.Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
List<SymbolInfo> p = obj as List<SymbolInfo>;
|
||||
if ((System.Object)p == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (p.Count() != list.Count)
|
||||
return false;
|
||||
for (int i = 0; i < list.Count; ++i)
|
||||
if (p.list[i] != list[i])
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool Equals(List<SymbolInfo> p)
|
||||
{
|
||||
if ((object)p == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (p.Count() != list.Count)
|
||||
return false;
|
||||
for (int i = 0; i < list.Count; ++i)
|
||||
if (p.list[i] != list[i])
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public static bool operator ==(List<SymbolInfo> a, List<SymbolInfo> b)
|
||||
{
|
||||
if (object.ReferenceEquals(a, null))
|
||||
{
|
||||
return object.ReferenceEquals(b, null);
|
||||
}
|
||||
|
||||
return a.Equals(b);
|
||||
}
|
||||
|
||||
public static bool operator !=(List<SymbolInfo> a, List<SymbolInfo> b)
|
||||
{
|
||||
return !(a == b);
|
||||
}
|
||||
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return base.GetHashCode();
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
public class SymbolInfo
|
||||
{
|
||||
public override string ToString() => scope == null ? sym_info.ToString() : "(" + scope.ToString() + "," + sym_info.ToString()+")";
|
||||
|
|
@ -290,8 +117,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolTable.Scope scope;
|
||||
|
||||
//public SymbolInfo reference;
|
||||
|
||||
public access_level access_level
|
||||
{
|
||||
get
|
||||
|
|
@ -338,7 +163,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo()
|
||||
{
|
||||
//reference = new SymbolInfo();
|
||||
}
|
||||
|
||||
public SymbolInfo copy()
|
||||
|
|
@ -404,7 +228,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(template_class tc)
|
||||
{
|
||||
//reference = new SymbolInfo(tc);
|
||||
_sym_info = tc;
|
||||
_access_level = access_level.al_public;
|
||||
_symbol_kind = symbol_kind.sk_none;
|
||||
|
|
@ -412,7 +235,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(label_node lab)
|
||||
{
|
||||
//reference = new SymbolInfo(lab);
|
||||
_sym_info = lab;
|
||||
_access_level = access_level.al_public;
|
||||
_symbol_kind = symbol_kind.sk_none;
|
||||
|
|
@ -420,7 +242,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(compiled_event ce)
|
||||
{
|
||||
//reference = new SymbolInfo(ce);
|
||||
_sym_info = ce;
|
||||
_access_level = access_level.al_public;
|
||||
_symbol_kind = symbol_kind.sk_none;
|
||||
|
|
@ -428,7 +249,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(compiled_type_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_compiled_type;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -437,7 +257,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(common_event value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
_sym_info = value;
|
||||
_access_level = get_class_member_access_level(value);
|
||||
_symbol_kind = symbol_kind.sk_none;
|
||||
|
|
@ -445,7 +264,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(common_namespace_event value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
_symbol_kind = symbol_kind.sk_none;
|
||||
|
|
@ -453,7 +271,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(function_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
_symbol_kind = symbol_kind.sk_none;
|
||||
|
|
@ -461,7 +278,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(compiled_function_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_compiled_function;
|
||||
_sym_info = value;
|
||||
_access_level = get_class_member_access_level(value);
|
||||
|
|
@ -470,7 +286,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(compiled_constructor_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_compiled_function;
|
||||
_sym_info = value;
|
||||
_access_level = get_class_member_access_level(value);
|
||||
|
|
@ -479,7 +294,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(compiled_property_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_compiled_property;
|
||||
_sym_info = value;
|
||||
_access_level = get_class_member_access_level(value);
|
||||
|
|
@ -488,7 +302,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(compiled_variable_definition value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_compiled_variable;
|
||||
_sym_info = value;
|
||||
_access_level = get_class_member_access_level(value);
|
||||
|
|
@ -497,7 +310,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(compiled_class_constant_definition value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
_sym_info = value;
|
||||
_access_level = get_class_member_access_level(value);
|
||||
_symbol_kind = symbol_kind.sk_none;
|
||||
|
|
@ -505,7 +317,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(compiled_namespace_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_compiled_namespace;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -514,7 +325,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(common_type_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_common_type;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -523,7 +333,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(basic_function_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_basic_function;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -532,7 +341,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(common_namespace_function_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_common_namespace_function;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -541,7 +349,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(common_in_function_function_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_common_in_function_function;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -550,7 +357,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(common_method_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_common_method;
|
||||
_sym_info = value;
|
||||
_access_level = get_class_member_access_level(value);
|
||||
|
|
@ -559,7 +365,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(common_namespace_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_common_namespace;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -568,7 +373,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(unit_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_unit;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -577,7 +381,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(local_variable value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_local_variable;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -586,7 +389,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(local_block_variable value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_local_variable;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -595,7 +397,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(namespace_variable value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_namespace_variable;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -604,7 +405,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(class_field value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_class_field;
|
||||
_sym_info = value;
|
||||
_access_level = get_class_member_access_level(value);
|
||||
|
|
@ -613,7 +413,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(common_parameter value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_common_parameter;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -622,7 +421,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(basic_parameter value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_basic_parameter;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -631,7 +429,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(constant_definition_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_constant_defnition;
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
|
|
@ -640,7 +437,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(common_property_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
//_name_information_type=name_information_type.nit_common_property;
|
||||
_sym_info = value;
|
||||
_access_level = get_class_member_access_level(value);
|
||||
|
|
@ -649,7 +445,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(type_node value)
|
||||
{
|
||||
//reference = new SymbolInfo(value);
|
||||
_sym_info = value;
|
||||
_access_level = access_level.al_public;
|
||||
_symbol_kind = symbol_kind.sk_none;
|
||||
|
|
@ -657,7 +452,6 @@ namespace PascalABCCompiler.TreeConverter
|
|||
|
||||
public SymbolInfo(definition_node value, access_level alevel, symbol_kind skind)
|
||||
{
|
||||
//reference = new SymbolInfo(value, alevel, skind);
|
||||
_sym_info = value;
|
||||
_access_level = alevel;
|
||||
_symbol_kind = skind;
|
||||
|
|
|
|||
|
|
@ -109,7 +109,6 @@
|
|||
<Compile Include="LambdaExpressions\LambdaProcessingState.cs" />
|
||||
<Compile Include="LambdaExpressions\LambdaResultTypeInferrer.cs" />
|
||||
<Compile Include="LambdaExpressions\LambdaSearcher.cs" />
|
||||
<Compile Include="SymbolTable\DSST\SymbolTable2.cs" />
|
||||
<Compile Include="TreeConversion\LambdaHelper.cs" />
|
||||
<Compile Include="SymbolTable\DSST\AreaArrayTable.cs">
|
||||
<SubType>Code</SubType>
|
||||
|
|
|
|||
Loading…
Reference in a new issue