Example #1
0
        public void TestBalanceSkip()
        {
            // skip
            JavaCodeParser parser1 = new JavaCodeParser("simple;D");

            parser1.SkipToIfBalanced(';');
            Assert.AreEqual(';', parser1.Char);
            Assert.AreEqual('D', parser1.Next());

            JavaCodeParser parser2 = new JavaCodeParser("find ( ;semicolon {[ ( ; ) ; ]} ; keep looking ) ;-)");

            parser2.SkipToIfBalanced(';');
            Assert.AreEqual(';', parser2.Char);
            Assert.AreEqual('-', parser2.Next());
            Assert.AreEqual(')', parser2.Next());

            JavaCodeParser parser3 = new JavaCodeParser("nope");

            parser3.SkipToIfBalanced(';');
            Assert.AreEqual('n', parser3.Char);

            JavaCodeParser parser4 = new JavaCodeParser("cannot find (;;;)");

            parser4.SkipToIfBalanced(';');
            Assert.AreEqual('c', parser4.Char);

            JavaCodeParser parser5 = new JavaCodeParser("( invalid [ balance ) ] ;");

            parser5.SkipToIfBalanced(';');
            Assert.AreEqual('(', parser5.Char);

            // read
            JavaCodeParser parser6    = new JavaCodeParser("these (are) contents; abc");
            JavaCodeParser readBlock6 = parser6.ReadToIfBalanced(';');

            Assert.AreEqual("these (are) contents", readBlock6.Contents);
            Assert.AreEqual(';', parser6.Char);

            JavaCodeParser parser7 = new JavaCodeParser("cannot find");

            Assert.AreEqual(string.Empty, parser7.ReadToIfBalanced(';').Contents);
        }
Example #2
0
        public void TestAnnotations()
        {
            Annotation?annotation1 = new JavaCodeParser("@SimpleAnnotation").ReadAnnotation();

            Assert.IsTrue(annotation1.HasValue);
            Assert.AreEqual("SimpleAnnotation", annotation1.Value.SimpleName);

            Annotation?annotation2 = new JavaCodeParser("@ AnnotationWithSpace ").ReadAnnotation();

            Assert.IsTrue(annotation2.HasValue);
            Assert.AreEqual("AnnotationWithSpace", annotation2.Value.SimpleName);

            Annotation?annotation3 = new JavaCodeParser("@full.name.Annotation").ReadAnnotation();

            Assert.IsTrue(annotation3.HasValue);
            Assert.AreEqual("Annotation", annotation3.Value.SimpleName);

            Annotation?annotation4 = new JavaCodeParser("@AnnotationWithArguments(var = true, other = 15)").ReadAnnotation();

            Assert.IsTrue(annotation4.HasValue);
            Assert.AreEqual("AnnotationWithArguments", annotation4.Value.SimpleName);

            Annotation?annotation5 = new JavaCodeParser("@  all.Combined (var = '') ").ReadAnnotation();

            Assert.IsTrue(annotation5.HasValue);
            Assert.AreEqual("Combined", annotation5.Value.SimpleName);

            Annotation?annotation6 = new JavaCodeParser("Invalid").ReadAnnotation();

            Assert.IsFalse(annotation6.HasValue);

            Annotation?annotation7 = new JavaCodeParser("@").ReadAnnotation();

            Assert.IsFalse(annotation7.HasValue);

            Annotation?annotation8 = new JavaCodeParser("@123").ReadAnnotation();

            Assert.IsFalse(annotation8.HasValue);
        }
Example #3
0
        public static List <T> ReadStructList <T>(JavaCodeParser parser, ReadStruct <T> readFunc, int defaultCapacity) where T : struct
        {
            var structs = new List <T>(defaultCapacity);

            parser.SkipSpacesAndSemicolons();

            while (true)
            {
                T?structObj = readFunc();

                parser.SkipSpaces();

                if (structObj.HasValue)
                {
                    structs.Add(structObj.Value);
                }
                else
                {
                    break;
                }
            }

            return(structs);
        }
 public void ClassSetup()
 {
     FileUnitSetup = new SrcMLFileUnitSetup(Language.CPlusPlus);
     CodeParser    = new JavaCodeParser();
 }
 public void ClassSetup() {
     FileUnitSetup = new SrcMLFileUnitSetup(Language.CPlusPlus);
     CodeParser = new JavaCodeParser();
 }