public void DetectVariable() { var sentence = "an apple"; var parseResult = EngLangParser.Parse(sentence); var expectedVariableName = "apple"; var variableDeclaration = Assert.IsType <IdentifierReference>(parseResult); Assert.Equal(expectedVariableName, variableDeclaration.Name); }
public void DeclareVariableWithType() { var sentence = "the name is a string"; var parseResult = EngLangParser.Parse(sentence); var expectedVariableName = "name"; var variableDeclaration = Assert.IsType <VariableDeclaration>(parseResult); Assert.Equal(expectedVariableName, variableDeclaration.Name); Assert.Equal("string", variableDeclaration.TypeName.Name); }
public void ConvertVariable() { var sentence = "the name is an apple."; var parseResult = EngLangParser.Parse(sentence); var converter = CreateConverter(); var result = converter.Convert(parseResult); var expectedCode = GetExpectedVariable(); Assert.Equal(expectedCode, result); }
public void MultiplyVariableByValue() { var sentence = "multiply a value by 42"; var parseResult = EngLangParser.Parse(sentence); var substractExpression = Assert.IsType <MultiplyExpression>(parseResult); var subtrahend = Assert.IsType <IntLiteralExpression>(substractExpression.Factor); Assert.Equal(42, subtrahend.Value); Assert.Equal("value", substractExpression.TargetVariable.Name); }
public void ConvertMultiplication() { var sentence = "multiply a value by 42"; var parseResult = EngLangParser.Parse(sentence); var converter = CreateConverter(); var result = converter.Convert(parseResult); var expectedCode = "value *= 42"; Assert.Equal(expectedCode, result); }
public void ConvertVariableWithIntLiteral() { var sentence = "the answer to all things is an number equal to 42"; var parseResult = EngLangParser.Parse(sentence); var converter = CreateConverter(); var result = converter.Convert(parseResult); var expectedCode = GetExpectedVariableWithIntLiteral(); Assert.Equal(expectedCode, result); }
public void ConvertAddition() { var sentence = "add 42 to a value"; var parseResult = EngLangParser.Parse(sentence); var converter = CreateConverter(); var result = converter.Convert(parseResult); var expectedCode = "value += 42"; Assert.Equal(expectedCode, result); }
public void ConvertAssignment() { var sentence = "put 40 into a value"; var parseResult = EngLangParser.Parse(sentence); var converter = CreateConverter(); var result = converter.Convert(parseResult); var expectedCode = GetExpectedAssignmentCode(); Assert.Equal(expectedCode, result); }
public void ConvertVariableWithStringLiteral() { var sentence = "the greetings is an string equal to \"Hello\""; var parseResult = EngLangParser.Parse(sentence); var converter = CreateConverter(); var result = converter.Convert(parseResult); var expectedCode = GetExpectedVariableWithStringLiteral(); Assert.Equal(expectedCode, result); }
public void ConvertDivision() { var sentence = "divide a value by 42"; var parseResult = EngLangParser.Parse(sentence); var converter = CreateConverter(); var result = converter.Convert(parseResult); var expectedCode = GetExpectedDivisionCode(); Assert.Equal(expectedCode, result); }
public void AddValueToVariable() { var sentence = "add 42 to a value"; var parseResult = EngLangParser.Parse(sentence); var additionExpression = Assert.IsType <AdditionExpression>(parseResult); var addend = Assert.IsType <IntLiteralExpression>(additionExpression.Addend); Assert.Equal(42, addend.Value); Assert.Equal("value", additionExpression.TargetVariable.Name); }
public void DivideVariableByValue() { var sentence = "divide a value by 42"; var parseResult = EngLangParser.Parse(sentence); var substractExpression = Assert.IsType <DivisionExpression>(parseResult); var subtrahend = Assert.IsType <IntLiteralExpression>(substractExpression.Denominator); Assert.Equal(42, subtrahend.Value); Assert.Equal("value", substractExpression.TargetVariable.Name); }
public void DeclareVariableWithAnType() { var sentence = "the name is an apple"; var parseResult = EngLangParser.Parse(sentence); var variableDeclaration = Assert.IsType <VariableDeclaration>(parseResult); Assert.Equal("name", variableDeclaration.Name); Assert.Equal("apple", variableDeclaration.TypeName.Name); Assert.Null(variableDeclaration.Expression); }
public void ConvertSubstraction() { var sentence = "substract 42 from a value"; var parseResult = EngLangParser.Parse(sentence); var converter = CreateConverter(); var result = converter.Convert(parseResult); var expectedCode = "value -= 42"; Assert.Equal(expectedCode, result); }
public void SubstractValueFromVariable() { var sentence = "substract 42 from a value"; var parseResult = EngLangParser.Parse(sentence); var substractExpression = Assert.IsType <SubstractExpression>(parseResult); var subtrahend = Assert.IsType <IntLiteralExpression>(substractExpression.Subtrahend); Assert.Equal(42, subtrahend.Value); Assert.Equal("value", substractExpression.TargetVariable.Name); }
public void DeclareVariableWithAnIntLiteralInitializer() { var sentence = "the answer to all things is an number equal to 42"; var parseResult = EngLangParser.Parse(sentence); var variableDeclaration = Assert.IsType <VariableDeclaration>(parseResult); Assert.Equal("answer to all things", variableDeclaration.Name); Assert.Equal("number", variableDeclaration.TypeName.Name); var intLiteralExpression = Assert.IsType <IntLiteralExpression>(variableDeclaration.Expression); Assert.Equal(42, intLiteralExpression.Value); }
public void DeclareVariableWithAnStringLiteralInitializer() { var sentence = "the greetings is an string equal to \"Hello\""; var parseResult = EngLangParser.Parse(sentence); var variableDeclaration = Assert.IsType <VariableDeclaration>(parseResult); Assert.Equal("greetings", variableDeclaration.Name); Assert.Equal("string", variableDeclaration.TypeName.Name); var stringLiteralExpression = Assert.IsType <StringLiteralExpression>(variableDeclaration.Expression); Assert.Equal("Hello", stringLiteralExpression.Value); }
public void ParseVariableDeclarationSatement() { var sentence = "the name is an apple."; var parseResult = EngLangParser.Parse(sentence); var blockStatement = Assert.IsType <BlockStatement>(parseResult); Assert.Single(blockStatement.Statements); var variableStatement = Assert.IsType <VariableDeclarationStatement>(blockStatement.Statements[0]); Assert.Equal("name", variableStatement.Declaration.Name); Assert.Equal("apple", variableStatement.Declaration.TypeName.Name); Assert.Null(variableStatement.Declaration.Expression); }
public void ParseVariableAssignment() { var sentence = "put 40 into a value."; var parseResult = EngLangParser.Parse(sentence); var blockStatement = Assert.IsType <BlockStatement>(parseResult); Assert.Single(blockStatement.Statements); var assignmentStatement = Assert.IsType <AssignmentStatement>(blockStatement.Statements[0]); var assignmentExpression = assignmentStatement.Expression; Assert.Equal("value", assignmentExpression.Variable.Name); var expression = Assert.IsType <IntLiteralExpression>(assignmentExpression.Expression); Assert.Equal(40, expression.Value); }