コード例 #1
0
ファイル: ScriptTests.cs プロジェクト: synfron/Staxe
        public void UndefinedVariableTest()
        {
            string undefined = @"
			var test = 50;
			var testCopy = noTest;"            ;

            (Synfron.Staxe.Matcher.Data.IMatchData matchData, bool success, int _, int?_, string _) = LanguageMatchEngine.Match(undefined);

            Assert.True(success);

            InstructionGenerator generator = new InstructionGenerator();

            LanguageConstraintException exception = Assert.Throws <LanguageConstraintException>(() => generator.Generate(matchData));

            Assert.Contains("Variable 'noTest' is not declared.", exception.Message);
            Assert.Equal(undefined.IndexOf("noTest"), exception.Position);
        }
コード例 #2
0
ファイル: ScriptTests.cs プロジェクト: synfron/Staxe
        public void InvalidAssignmentTest()
        {
            string invalidAssignment = @"
			var callable = () {
			};

			callable() = 7;"            ;

            (Synfron.Staxe.Matcher.Data.IMatchData matchData, bool success, int _, int?_, string _) = LanguageMatchEngine.Match(invalidAssignment);

            Assert.True(success);

            InstructionGenerator generator = new InstructionGenerator();

            LanguageConstraintException exception = Assert.Throws <LanguageConstraintException>(() => generator.Generate(matchData));

            Assert.Contains("Cannot assign to the return of a function.", exception.Message);
            Assert.Equal(invalidAssignment.IndexOf("= 7"), exception.Position);
        }