public void UltracalcGrammer_IsolationGrammer_NDepthRecursion_Test() { var builder = new SyntaxTreeBuilder(); builder.Build("10 + (5 - (10 + (5 - (10 + 5))))"); Assert.AreEqual(false, builder.EventLog.HasEventLogs); }
public void DataListGrammer_IsolationGrammer_NDepthRecursion_Test() { var builder = new SyntaxTreeBuilder(); builder.Build("[[entry([[entry([[entry(5)]])]])]]"); Assert.AreEqual(false, builder.EventLog.HasEventLogs); }
public void DataListGrammer_IsolationGrammer_EnsureFailure_Test() { var builder = new SyntaxTreeBuilder(); builder.Build("[[entry]2]"); Assert.AreEqual(true, builder.EventLog.HasEventLogs); }
public void TestBuildsSimpleTree() { var tokenStream = new Token[] { new Token(TokenType.Identifier, "p"), new Token(TokenType.OpenBrace, "{"), new Token(TokenType.Identifier, "color"), new Token(TokenType.Colon, ":"), new Token(TokenType.Identifier, "red"), new Token(TokenType.SemiColon, ";"), new Token(TokenType.CloseBrace, "}") }; var builder = new SyntaxTreeBuilder(tokenStream); var root = builder.Build().Root.Children.First(); Assert.That(root, Is.TypeOf <SassNode>()); var sassNode = (SassNode)root; Assert.That(sassNode.Selector.Selector.Value, Is.EqualTo("p")); var declaration = (DeclarationNode)sassNode.Container.Children.First(); Assert.That(declaration.Property.Name, Is.EqualTo("color")); Assert.That(declaration.Value.Value, Is.EqualTo("red")); }
public void UltracalcGrammer_IsolationGrammer_CompositeIdentifier_EnsureFailure_Test() { var builder = new SyntaxTreeBuilder(); builder.Build("10 + sum(5 - (10 + (5 - (10 + [asd[entry]]))))"); Assert.AreEqual(true, builder.EventLog.HasEventLogs); }
public void DataListGrammer_IsolationGrammer_ComplexParameter_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("[[identifier([[parameter]]).field]]"); Assert.AreEqual(false, builder.EventLog.HasEventLogs); }
public void UltracalcGrammer_IsolationGrammer_NestedComposite_ComplexParameter_EnsureFailure_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("10 + sum(5 - (10 + (5 - (10 + [[entry(5).[[field]]]]))), 50 / 2 ^ 8, [[identifier]], 10 + sum(5 - (10 + (5 - (10 + [[entry(5).[[field]]]]))), 50 / 2 != 8, [[identifier]]))"); Assert.AreEqual(true, builder.EventLog.HasEventLogs); }
public void DataListGrammer_IsolationGrammer_NestedComposite_ComplexParameter_NestedSimple_EnsureFailure_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("[[[[identifier]]([[parameter(10).field]]).[2[field]]]]"); Assert.AreEqual(true, builder.EventLog.HasEventLogs); }
public void DataListGrammer_IsolationGrammer_CompositeIdentifier_CompositeField_EnsureFailure_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("[[[[identifier]2](5).[[field]]]]"); Assert.AreEqual(true, builder.EventLog.HasEventLogs); }
/// <summary> /// Parses schema from text reader /// </summary> /// <param name="reader">Text reader used for parsing</param> /// <returns>Parsing result</returns> public ParsingResult Parse(TextReader reader) { var errors = new List <ParsingError>(); var tokens = Tokenizer.Tokenize(reader, errors).ToArray(); var passes = new ParserPass[] { new DeclarationPass(tokens, errors), new SyntaxAnalysisPass(tokens, errors) }; var result = new SyntaxTreeBuilder(); foreach (var pass in passes) { pass.Run(result); } if (errors.Count > 0) { return(new ParsingResult(ImmutableArray <SchemaDeclaration> .Empty, errors.ToImmutableArray())); } else { return(new ParsingResult(result.Build(), ImmutableArray <ParsingError> .Empty)); } }
public void DataListGrammer_IsolationGrammer_NDepthRecursion_EnsureFailure_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("[[entry([[entry([[entry(5)]])]2])]]"); Assert.AreEqual(true, builder.EventLog.HasEventLogs); }
public void DataListGrammer_IsolationGrammer_CompositeIdentifier_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("[[[[identifier]](5)]]"); Assert.AreEqual(false, builder.EventLog.HasEventLogs); }
public void DataListGrammer_IsolationGrammer_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("[[entry]]"); Assert.AreEqual(false, builder.EventLog.HasEventLogs); }
public void ASTGrammerBehaviourRegistry_RegisterTrigger_NullDefinition_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.RegisterGrammer(new TestGrammer(1)); builder.Build("5 + 4"); }
public void AbstractSyntaxTreeBuilder_RegisterAfterBuild_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("5"); builder.RegisterGrammer(new CharLiteralGrammer()); }
public void DataListGrammer_IsolationGrammer_SingleVariable_HasEventLogsIsFalse() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("[[entry]]"); Assert.IsFalse(builder.EventLog.HasEventLogs); }
public void DataListGrammer_IsolationGrammer_VariablesSideBySideWithAnAdditionOperator_HasEventLogsIsFalse() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("[[entry]]+[[var]]"); Assert.IsFalse(builder.EventLog.HasEventLogs); }
public void CorrectlyTokenisesDeleteExample() { var tokens = new List <SyntaxToken> { OperationTokens.Delete, OperationTokens.From, new SyntaxToken("database2.logs"), OperationTokens.Where, new SyntaxToken("id"), OperationTokens.LessThan, new SyntaxToken("1000") }; var result = SyntaxTreeBuilder.Build(tokens); var expectedResult = new SyntaxNode(OperationTokens.Delete) { Right = new SyntaxNode(OperationTokens.From) { Left = new SyntaxNode(new SyntaxToken("database2.logs")), Right = new SyntaxNode(OperationTokens.Where) { Left = new SyntaxNode(OperationTokens.LessThan) { Left = new SyntaxNode(new SyntaxToken("id")), Right = new SyntaxNode(new SyntaxToken("1000")) } } } }; Assert.True(AreSyntaxTreesEqual(expectedResult, result)); }
public void UltracalcGrammer_IsolationGrammer_CompositeIdentifier_CompositeField_EnsureFailure_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("10 + sum(5 - - (10 + (5 - (10 + [[entry(5).[[field]]]]))), 10)"); Assert.AreEqual(true, builder.EventLog.HasEventLogs); }
public void UltracalcGrammer_IsolationGrammer_EnsureFailure_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("10 + 5 asd"); Assert.AreEqual(true, builder.EventLog.HasEventLogs); }
public void UltracalcGrammer_IsolationGrammer_NDepthRecursion_EnsureFailure_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("10 + (5 - (10 + (5 - as d(10 + 5))))"); Assert.AreEqual(true, builder.EventLog.HasEventLogs); }
public void UltracalcGrammer_IsolationGrammer_CompositeField_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("10 + (5 - (10 + (5 - (10 + [[entry(5).[[field]]]]))))"); Assert.AreEqual(false, builder.EventLog.HasEventLogs); }
public void UltracalcGrammer_IsolationGrammer_ComplexParameter_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("10 + sum(5 - (10 + (5 - (10 + [[entry(5).[[field]]]]))), 50 / 2 ^ 8, [[identifier]])"); Assert.AreEqual(false, builder.EventLog.HasEventLogs); }
public void UltracalcGrammer_StringLiteralGrammer_PartialDatalist_EnsureSuccess_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("\"asd[[asd\" & \"jack\""); Assert.AreEqual(false, builder.EventLog.HasEventLogs); }
public void UltracalcGrammer_IsolationGrammer_EnsureSuccess_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("10 + 5"); Assert.AreEqual(false, builder.EventLog.HasEventLogs); }
public void UltracalcGrammer_StringLiteralGrammer_CompositeNestedDatalist_Infragistics_EnsureSuccess_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("\"asd[[[[Jon]](sum(5,-1)).[[Field]]]]\" & \"jack\""); Assert.AreEqual(false, builder.EventLog.HasEventLogs); }
public void DataListGrammer_IsolationGrammer_InvalidVar_HasEventLogsIsTrue() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("[[entry"); Assert.IsTrue(builder.EventLog.HasEventLogs); }
public void DataListGrammer_IsolationGrammer_VariablesSideBySide_WithModOperator_HasEventLogsIsFalse() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.Build("[[rec().a]]%[[rec().b]] "); Assert.IsFalse(builder.EventLog.HasEventLogs); }
public void AbstractSyntaxTreeBuilder_MultipleNonUnaryTokenizationHandlers_Test() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); builder.RegisterGrammer(new TestGrammer(0)); builder.Build("5 + 4"); }
public void SyntaxTreeBuilder_Build_VariablesSideBySideWithNewLine_HasEventLogsIsFalse() { SyntaxTreeBuilder builder = new SyntaxTreeBuilder(); var input = "[[entry]]" + Environment.NewLine + "[[var]]"; builder.Build(input); Assert.IsFalse(builder.EventLog.HasEventLogs); }
/// <summary> /// Is the list. /// </summary> /// <param name="activityField">The activity field.</param> /// <returns></returns> public IList<string> FormatDsfActivityField(string activityField) { //2013.06.10: Ashley Lewis for bug 9306 - handle the case of miss-matched region braces IList<string> result = new List<string>(); var regions = DataListCleaningUtils.SplitIntoRegionsForFindMissing(activityField); foreach(var region in regions) { // Sashen: 09-10-2012 : Using the new parser var intellisenseParser = new SyntaxTreeBuilder(); Node[] nodes = intellisenseParser.Build(region); // No point in continuing ;) if(nodes == null) { return result; } if(intellisenseParser.EventLog.HasEventLogs) { IDev2StudioDataLanguageParser languageParser = DataListFactory.CreateStudioLanguageParser(); try { result = languageParser.ParseForActivityDataItems(region); } catch(Dev2DataLanguageParseError) { return new List<string>(); } catch(NullReferenceException) { return new List<string>(); } } var allNodes = new List<Node>(); if(nodes.Any() && !(intellisenseParser.EventLog.HasEventLogs)) { nodes[0].CollectNodes(allNodes); // ReSharper disable once ForCanBeConvertedToForeach for(int i = 0; i < allNodes.Count; i++) { if(allNodes[i] is DatalistRecordSetNode) { var refNode = allNodes[i] as DatalistRecordSetNode; string nodeName = refNode.GetRepresentationForEvaluation(); nodeName = nodeName.Substring(2, nodeName.Length - 4); result.Add(nodeName); } else if(allNodes[i] is DatalistReferenceNode) { var refNode = allNodes[i] as DatalistReferenceNode; string nodeName = refNode.GetRepresentationForEvaluation(); nodeName = nodeName.Substring(2, nodeName.Length - 4); result.Add(nodeName); } } } } return result; }