forked from jasder/antlr
pull in pr1229 into branch: dotnetcore
This commit is contained in:
commit
7fcf8ab074
|
@ -31,6 +31,9 @@ __pycache__/
|
||||||
|
|
||||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
*.userprefs
|
*.userprefs
|
||||||
|
*.user
|
||||||
|
.vs/
|
||||||
|
project.lock.json
|
||||||
|
|
||||||
# Build results
|
# Build results
|
||||||
[Dd]ebug/
|
[Dd]ebug/
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 14
|
||||||
|
VisualStudioVersion = 14.0.25420.1
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Antlr4.Runtime.DotNetCore", "Antlr4.Runtime.DotNetCore.xproj", "{12962409-846E-4B80-933A-BC484D264132}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{12962409-846E-4B80-933A-BC484D264132}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{12962409-846E-4B80-933A-BC484D264132}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{12962409-846E-4B80-933A-BC484D264132}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{12962409-846E-4B80-933A-BC484D264132}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
|
||||||
|
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<ProjectGuid>12962409-846e-4b80-933a-bc484d264132</ProjectGuid>
|
||||||
|
<RootNamespace>Antlr4.Runtime.DotNetCore</RootNamespace>
|
||||||
|
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
|
||||||
|
<OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
|
||||||
|
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||||
|
</Project>
|
|
@ -646,7 +646,11 @@ namespace Antlr4.Runtime.Misc
|
||||||
StringBuilder errors = new StringBuilder();
|
StringBuilder errors = new StringBuilder();
|
||||||
foreach (Tuple<RuleDependencyAttribute, ICustomAttributeProvider> dependency in dependencies)
|
foreach (Tuple<RuleDependencyAttribute, ICustomAttributeProvider> dependency in dependencies)
|
||||||
{
|
{
|
||||||
if (!dependency.Item1.Recognizer.IsAssignableFrom(recognizerType))
|
#if DOTNETCORE
|
||||||
|
if (!dependency.Item1.Recognizer.GetTypeInfo().IsAssignableFrom(recognizerType))
|
||||||
|
#else
|
||||||
|
if (!dependency.Item1.Recognizer.IsAssignableFrom(recognizerType))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -773,7 +777,11 @@ namespace Antlr4.Runtime.Misc
|
||||||
private static int[] GetRuleVersions(Type recognizerClass, string[] ruleNames)
|
private static int[] GetRuleVersions(Type recognizerClass, string[] ruleNames)
|
||||||
{
|
{
|
||||||
int[] versions = new int[ruleNames.Length];
|
int[] versions = new int[ruleNames.Length];
|
||||||
|
#if DOTNETCORE
|
||||||
|
FieldInfo[] fields = recognizerClass.GetTypeInfo().GetFields();
|
||||||
|
#else
|
||||||
FieldInfo[] fields = recognizerClass.GetFields();
|
FieldInfo[] fields = recognizerClass.GetFields();
|
||||||
|
#endif
|
||||||
foreach (FieldInfo field in fields)
|
foreach (FieldInfo field in fields)
|
||||||
{
|
{
|
||||||
bool isStatic = field.IsStatic;
|
bool isStatic = field.IsStatic;
|
||||||
|
@ -805,7 +813,11 @@ namespace Antlr4.Runtime.Misc
|
||||||
#endif
|
#endif
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
#if DOTNETCORE
|
||||||
|
RuleVersionAttribute ruleVersion = ruleMethod.GetCustomAttribute<RuleVersionAttribute>();
|
||||||
|
#else
|
||||||
RuleVersionAttribute ruleVersion = (RuleVersionAttribute)Attribute.GetCustomAttribute(ruleMethod, typeof(RuleVersionAttribute));
|
RuleVersionAttribute ruleVersion = (RuleVersionAttribute)Attribute.GetCustomAttribute(ruleMethod, typeof(RuleVersionAttribute));
|
||||||
|
#endif
|
||||||
int version = ruleVersion != null ? ruleVersion.Version : 0;
|
int version = ruleVersion != null ? ruleVersion.Version : 0;
|
||||||
versions[index] = version;
|
versions[index] = version;
|
||||||
}
|
}
|
||||||
|
@ -832,10 +844,18 @@ namespace Antlr4.Runtime.Misc
|
||||||
|
|
||||||
private static MethodInfo GetRuleMethod(Type recognizerClass, string name)
|
private static MethodInfo GetRuleMethod(Type recognizerClass, string name)
|
||||||
{
|
{
|
||||||
|
#if DOTNETCORE
|
||||||
|
MethodInfo[] declaredMethods = recognizerClass.GetTypeInfo().GetMethods();
|
||||||
|
#else
|
||||||
MethodInfo[] declaredMethods = recognizerClass.GetMethods();
|
MethodInfo[] declaredMethods = recognizerClass.GetMethods();
|
||||||
|
#endif
|
||||||
foreach (MethodInfo method in declaredMethods)
|
foreach (MethodInfo method in declaredMethods)
|
||||||
{
|
{
|
||||||
if (method.Name.Equals(name) && Attribute.IsDefined(method, typeof(RuleVersionAttribute)))
|
#if DOTNETCORE
|
||||||
|
if (method.Name.Equals(name) && method.IsDefined(typeof(RuleVersionAttribute)))
|
||||||
|
#else
|
||||||
|
if (method.Name.Equals(name) && Attribute.IsDefined(method, typeof(RuleVersionAttribute)))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
return method;
|
return method;
|
||||||
}
|
}
|
||||||
|
@ -845,7 +865,11 @@ namespace Antlr4.Runtime.Misc
|
||||||
|
|
||||||
private static string[] GetRuleNames(Type recognizerClass)
|
private static string[] GetRuleNames(Type recognizerClass)
|
||||||
{
|
{
|
||||||
|
#if DOTNETCORE
|
||||||
|
FieldInfo ruleNames = recognizerClass.GetTypeInfo().GetField("ruleNames");
|
||||||
|
#else
|
||||||
FieldInfo ruleNames = recognizerClass.GetField("ruleNames");
|
FieldInfo ruleNames = recognizerClass.GetField("ruleNames");
|
||||||
|
#endif
|
||||||
return (string[])ruleNames.GetValue(null);
|
return (string[])ruleNames.GetValue(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -853,20 +877,36 @@ namespace Antlr4.Runtime.Misc
|
||||||
{
|
{
|
||||||
IList<Tuple<RuleDependencyAttribute, ICustomAttributeProvider>> result = new List<Tuple<RuleDependencyAttribute, ICustomAttributeProvider>>();
|
IList<Tuple<RuleDependencyAttribute, ICustomAttributeProvider>> result = new List<Tuple<RuleDependencyAttribute, ICustomAttributeProvider>>();
|
||||||
|
|
||||||
|
#if DOTNETCORE
|
||||||
|
GetElementDependencies(AsCustomAttributeProvider(clazz.GetTypeInfo()), result);
|
||||||
|
#else
|
||||||
GetElementDependencies(AsCustomAttributeProvider(clazz), result);
|
GetElementDependencies(AsCustomAttributeProvider(clazz), result);
|
||||||
|
#endif
|
||||||
|
#if DOTNETCORE
|
||||||
|
foreach (ConstructorInfo ctor in clazz.GetTypeInfo().GetConstructors(AllDeclaredMembers))
|
||||||
|
#else
|
||||||
foreach (ConstructorInfo ctor in clazz.GetConstructors(AllDeclaredMembers))
|
foreach (ConstructorInfo ctor in clazz.GetConstructors(AllDeclaredMembers))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
GetElementDependencies(AsCustomAttributeProvider(ctor), result);
|
GetElementDependencies(AsCustomAttributeProvider(ctor), result);
|
||||||
foreach (ParameterInfo parameter in ctor.GetParameters())
|
foreach (ParameterInfo parameter in ctor.GetParameters())
|
||||||
GetElementDependencies(AsCustomAttributeProvider(parameter), result);
|
GetElementDependencies(AsCustomAttributeProvider(parameter), result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if DOTNETCORE
|
||||||
|
foreach (FieldInfo field in clazz.GetTypeInfo().GetFields(AllDeclaredMembers))
|
||||||
|
#else
|
||||||
foreach (FieldInfo field in clazz.GetFields(AllDeclaredMembers))
|
foreach (FieldInfo field in clazz.GetFields(AllDeclaredMembers))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
GetElementDependencies(AsCustomAttributeProvider(field), result);
|
GetElementDependencies(AsCustomAttributeProvider(field), result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if DOTNETCORE
|
||||||
|
foreach (MethodInfo method in clazz.GetTypeInfo().GetMethods(AllDeclaredMembers))
|
||||||
|
#else
|
||||||
foreach (MethodInfo method in clazz.GetMethods(AllDeclaredMembers))
|
foreach (MethodInfo method in clazz.GetMethods(AllDeclaredMembers))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
GetElementDependencies(AsCustomAttributeProvider(method), result);
|
GetElementDependencies(AsCustomAttributeProvider(method), result);
|
||||||
#if COMPACT
|
#if COMPACT
|
||||||
|
@ -922,12 +962,21 @@ namespace Antlr4.Runtime.Misc
|
||||||
|
|
||||||
private static string GetSerializedATN(Type recognizerClass)
|
private static string GetSerializedATN(Type recognizerClass)
|
||||||
{
|
{
|
||||||
|
#if DOTNETCORE
|
||||||
|
FieldInfo serializedAtnField = recognizerClass.GetTypeInfo().GetField("_serializedATN", AllDeclaredStaticMembers);
|
||||||
|
#else
|
||||||
FieldInfo serializedAtnField = recognizerClass.GetField("_serializedATN", AllDeclaredStaticMembers);
|
FieldInfo serializedAtnField = recognizerClass.GetField("_serializedATN", AllDeclaredStaticMembers);
|
||||||
|
#endif
|
||||||
if (serializedAtnField != null)
|
if (serializedAtnField != null)
|
||||||
return (string)serializedAtnField.GetValue(null);
|
return (string)serializedAtnField.GetValue(null);
|
||||||
|
|
||||||
|
#if DOTNETCORE
|
||||||
|
if (recognizerClass.GetTypeInfo().BaseType != null)
|
||||||
|
return GetSerializedATN(recognizerClass.GetTypeInfo().BaseType);
|
||||||
|
#else
|
||||||
if (recognizerClass.BaseType != null)
|
if (recognizerClass.BaseType != null)
|
||||||
return GetSerializedATN(recognizerClass.BaseType);
|
return GetSerializedATN(recognizerClass.BaseType);
|
||||||
|
#endif
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
/* Copyright (c) 2012-2016 The ANTLR Project. All rights reserved.
|
/* Copyright (c) 2012-2016 The ANTLR Project. All rights reserved.
|
||||||
* Use of this file is governed by the BSD 3-clause license that
|
* Use of this file is governed by the BSD 3-clause license that
|
||||||
* can be found in the LICENSE.txt file in the project root.
|
* can be found in the LICENSE.txt file in the project root.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if PORTABLE
|
#if PORTABLE || DOTNETCORE
|
||||||
|
|
||||||
namespace System
|
namespace System
|
||||||
{
|
{
|
||||||
|
@ -14,3 +14,4 @@ namespace System
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,6 @@ using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Runtime.Serialization;
|
|
||||||
|
|
||||||
namespace Antlr4.Runtime.Sharpen
|
namespace Antlr4.Runtime.Sharpen
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 2013
|
# Visual Studio 2013
|
||||||
VisualStudioVersion = 12.0.31101.0
|
VisualStudioVersion = 12.0.31101.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"buildOptions": {
|
||||||
|
"define": [ "DEBUG", "TRACE", "DOTNETCORE", "NET40PLUS", "NET45PLUS" ],
|
||||||
|
"keyFile": "../Antlr4.snk",
|
||||||
|
"xmlDoc": true
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"NETStandard.Library": "1.6.0"
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netstandard1.5": {
|
||||||
|
"imports": "dnxcore50"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"version": "4.5.3-*"
|
||||||
|
}
|
Loading…
Reference in New Issue