Beispiel #1
0
    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);
    }
Beispiel #2
0
    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);
    }
Beispiel #4
0
    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);
    }
Beispiel #11
0
    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);
    }
Beispiel #12
0
    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);
    }
Beispiel #13
0
    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);
    }
Beispiel #15
0
    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);
    }
Beispiel #16
0
    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);
    }
Beispiel #17
0
    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);
    }
Beispiel #18
0
    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);
    }
Beispiel #19
0
    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);
    }