public void CheckParentSkip() { Symbol symbol = grammar.GetSymbolByName(Symbol.FormatTerminalSymbol("-")); SymbolTypeMap<TestToken> parentSymbolTypeMap = new SymbolTypeMap<TestToken>(); SymbolTypeMap<TestToken> symbolTypeMap = new SymbolTypeMap<TestToken>(parentSymbolTypeMap); symbolTypeMap.SetTypeForSymbol(symbol, typeof(TestAdd)); Assert.Equal(typeof(TestAdd), symbolTypeMap.GetSymbolType(symbol)); }
public void CheckParentVersionIncrementType() { Symbol symbol = grammar.GetSymbolByName(Symbol.FormatTerminalSymbol("-")); SymbolTypeMap<TestToken> parentSymbolTypeMap = new SymbolTypeMap<TestToken>(); SymbolTypeMap<TestToken> symbolTypeMap = new SymbolTypeMap<TestToken>(parentSymbolTypeMap); long version = symbolTypeMap.Version; symbolTypeMap.SetTypeForSymbol(symbol, typeof(TestAdd)); Assert.True(version < symbolTypeMap.Version); version = symbolTypeMap.Version; parentSymbolTypeMap.SetTypeForSymbol(symbol, typeof(TestAdd)); Assert.True(version < symbolTypeMap.Version); }
public void InvalidType() { SymbolTypeMap<TestToken> symbolTypeMap = new SymbolTypeMap<TestToken>(); Assert.Throws<ArgumentException>(() => { symbolTypeMap.GetBaseTypes(typeof(SemanticToken)); }); }
public void GetSymbolType() { Symbol symbol = grammar.GetSymbolByName(Symbol.FormatTerminalSymbol("-")); SymbolTypeMap<TestToken> symbolTypeMap = new SymbolTypeMap<TestToken>(); symbolTypeMap.SetTypeForSymbol(symbol, typeof(TestAdd)); symbolTypeMap.SetTypeForSymbol(symbol, typeof(TestSubtract)); Assert.Equal(typeof(TestOperation), symbolTypeMap.GetSymbolType(symbol)); }
public void GetSingleAncestor() { SymbolTypeMap<TestToken> symbolTypeMap = new SymbolTypeMap<TestToken>(); ReadOnlyCollection<Type> baseTypes = symbolTypeMap.GetBaseTypes(typeof(TestOperation)); Assert.Equal(new[] {typeof(TestToken), typeof(TestOperation)}, baseTypes); }
public void GetCommonBaseTypeSame() { SymbolTypeMap<TestToken> symbolTypeMap = new SymbolTypeMap<TestToken>(); Assert.Equal(typeof(TestValue), symbolTypeMap.GetCommonBaseType(typeof(TestValue), typeof(TestValue))); }
public void GetCommonBaseTypeAncestor() { SymbolTypeMap<TestToken> symbolTypeMap = new SymbolTypeMap<TestToken>(); Assert.Equal(typeof(TestOperation), symbolTypeMap.GetCommonBaseType(typeof(TestAdd), typeof(TestSubtract))); }