Beispiel #1
0
        public void ParseNamespaceWithScopeIsInvalid()
        {
            var parser = new CaliParser();

            Assert.Throws <CaliParseException>(() =>
                                               parser.ParseString("\n\n    namespace ScopeNamespace {\n}"));
        }
Beispiel #2
0
        public void ParseNamespaceDeclSimple()
        {
            var parser = new CaliParser();

            var compileUnitSyntax    = parser.ParseString("namespace Simple");
            var namespaceDeclaration = compileUnitSyntax.NamespaceDeclaration;

            Assert.NotNull(namespaceDeclaration);
            Assert.Equal("Simple", namespaceDeclaration !.Identifier);
        }
Beispiel #3
0
        public void ParseNamespaceDeclComplex()
        {
            var parser = new CaliParser();

            var compileUnitSyntax    = parser.ParseString("\n\n    namespace More.Complex.Test");
            var namespaceDeclaration = compileUnitSyntax.NamespaceDeclaration;

            Assert.NotNull(namespaceDeclaration);
            Assert.Equal("More.Complex.Test", namespaceDeclaration !.Identifier);
        }
Beispiel #4
0
        public void ParseClassDefinition()
        {
            var parser = new CaliParser();

            var compileUnitSyntax    = parser.ParseString(@"
namespace MyLibrary

class MyFirstClass {
}
");
            var namespaceDeclaration = compileUnitSyntax.NamespaceDeclaration;

            Assert.NotNull(namespaceDeclaration);
            Assert.Equal("MyLibrary", namespaceDeclaration !.Identifier);

            Assert.True(compileUnitSyntax.FunctionDeclarationList.Count == 0);
            Assert.True(compileUnitSyntax.ClassDeclarationSyntaxList.Count > 0);
            Assert.Equal("MyFirstClass", compileUnitSyntax.ClassDeclarationSyntaxList.First().Name);
        }
Beispiel #5
0
        public void ParseFunctionDefinition()
        {
            var parser = new CaliParser();

            var compileUnitSyntax    = parser.ParseString(@"
namespace MyLibrary

func main(args: Array<String>) -> Int {
}
");
            var namespaceDeclaration = compileUnitSyntax.NamespaceDeclaration;

            Assert.NotNull(namespaceDeclaration);
            Assert.Equal("MyLibrary", namespaceDeclaration !.Identifier);

            Assert.True(compileUnitSyntax.ClassDeclarationSyntaxList.Count == 0);
            Assert.True(compileUnitSyntax.FunctionDeclarationList.Count > 0);
            var func = compileUnitSyntax.FunctionDeclarationList.First();

            Assert.Equal("main", func.Name);
        }
Beispiel #6
0
        public void ParseInternalAbstractClassDefinition()
        {
            var parser = new CaliParser();

            var compileUnitSyntax    = parser.ParseString(@"
namespace MyLibrary

internal abstract class MyFirstClass {
}
");
            var namespaceDeclaration = compileUnitSyntax.NamespaceDeclaration;

            Assert.NotNull(namespaceDeclaration);
            Assert.Equal("MyLibrary", namespaceDeclaration?.Identifier);

            Assert.True(compileUnitSyntax.FunctionDeclarationList.Count == 0);
            Assert.True(compileUnitSyntax.ClassDeclarationSyntaxList.Count > 0);
            var classDecl = compileUnitSyntax.ClassDeclarationSyntaxList.First();

            Assert.Equal("MyFirstClass", classDecl.Name);
            Assert.True(classDecl.Modifiers.IsInternal);
            Assert.True(classDecl.Modifiers.IsAbstract);
            Assert.False(classDecl.Modifiers.IsPrivate);
        }