示例#1
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
 {
     if (node.SafeParent().Name == "commaList" &&
         node.SafeParent().SafeParent().Name == "forCondition" &&
         !node.NextsFromSelf().Any())
     {
         return(true);
     }
     return(false);
 }
示例#2
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
 {
     if (node.SafeParent().Name == "commaList" &&
         node.SafeParent().SafeParent().Name == "simpleStatement" &&
         node.SafeParent().SafeParent().FirstChild.Name == "Echo" &&
         node.Prev == null)
     {
         return(true);
     }
     return(false);
 }
示例#3
0
        public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
        {
            var siblings = node.Siblings().ToList();
            var parent   = node.Parent;

            if (parent.SafeName() == "stat" && siblings[0].TokenText == "if")
            {
                return(node.TokenText != "true");
            }
            if (parent.SafeName() == "stat" && siblings[0].TokenText == "while")
            {
                return(node.TokenText != "true");
            }
            if (parent.SafeName() == "stat" && siblings[0].TokenText == "repeat")
            {
                return(node.TokenText != "true");
            }
            var ppp  = node.SafeParent().SafeParent().SafeParent();
            var pppp = ppp.SafeParent();

            if (pppp.SafeName() == "functioncall" && ppp.Prev != null &&
                ppp.Prev.TokenText == "print")
            {
                return(node.TokenText != "true");
            }
            return(false);
        }
示例#4
0
        public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
        {
            var parentName = node.Parent.SafeName();

            if (parentName == "ifStatement")
            {
                return(true);
            }
            if (parentName == "whileStatement")
            {
                return(true);
            }
            if (parentName == "doWhileStatement")
            {
                return(true);
            }
            if (parentName == "forStatement" &&
                node.Prev == node.Parent.Children().First(e2 => e2.TokenText == ";"))
            {
                return(true);
            }
            var p = node.SafeParent().SafeParent();

            if (p.SafeName() == "callExpression" && p.FirstChild.TokenText == "console.log" &&
                p.Child("arguments").Child("assignmentExpression") == node)
            {
                return(true);
            }
            return(false);
        }
示例#5
0
        public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
        {
            var pName = node.SafeParent().FirstChild.Name;

            if (pName == "Do")
            {
                return(true);
            }
            return(false);
        }
示例#6
0
        public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
        {
            var pName = node.SafeParent().FirstChild.Name;

            if (pName == "Switch")
            {
                return(true);
            }
            return(node.Name == "casestatement" || node.Name == "defaultcase");
        }
示例#7
0
        public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
        {
            var ppp  = node.SafeParent().SafeParent().SafeParent();
            var pppp = ppp.SafeParent();

            if (pppp.SafeName() == "functioncall" && ppp.Prev != null &&
                ppp.Prev.TokenText == "print")
            {
                return(true);
            }
            return(false);
        }
示例#8
0
        public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
        {
            var pName = node.SafeParent().FirstChild.Name;

            if (pName == "If")
            {
                return(true);
            }
            if (pName == "While")
            {
                return(true);
            }
            if (pName == "Do")
            {
                return(true);
            }
            if (node.SafeParent().Name == "commaList" &&
                node.SafeParent().SafeParent().Name == "forCondition" &&
                !node.NextsFromSelf().Any())
            {
                return(true);
            }
            if (node.SafeParent().Name == "commaList" &&
                node.SafeParent().SafeParent().Name == "simpleStatement" &&
                node.SafeParent().SafeParent().FirstChild.Name == "Echo" &&
                node.Prev == null)
            {
                return(true);
            }
            return(false);
        }
示例#9
0
        public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
        {
            var p      = node.Parent;
            var pp     = p.Parent;
            var isPar  = p.SafeName() == "parExpression";
            var isStmt = pp.SafeName() == "statement";

            if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "if")
            {
                return(true);
            }
            if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "while")
            {
                return(true);
            }
            if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "do")
            {
                return(true);
            }
            if (p.SafeName() == "forstatement" &&
                p.Children().Count(e2 => e2.TokenText == ";") >= 2)
            {
                return(true);
            }
            {
                var primary = node.SafeParent().SafeParent().SafeParent().SafeParent();
                if (primary.SafeName() != "primary")
                {
                    return(false);
                }
                //if (primary.Elements().All(e2 => e2.TokenText() != "Preconditions")) {
                //	return false;
                //}
                if (primary.Children().All(e2 => e2.TokenText != "checkArgument"))
                {
                    return(false);
                }
                //if (primary.NthElementOrDefault(0).SafeTokenText() != "Preconditions") {
                //	return false;
                //}
                //if (primary.NthElementOrDefault(2).SafeTokenText() != "checkArgument") {
                //	return false;
                //}
                if (node.PrevsFromFirst().Any())
                {
                    return(false);
                }
                return(true);
            }
        }
示例#10
0
        public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
        {
            var pName = node.SafeParent().FirstChild.Name;

            if (pName == "If")
            {
                return(true);
            }
            if (pName == "While")
            {
                return(true);
            }
            if (pName == "Do")
            {
                return(true);
            }
            if (node.SafeParent().Name == "commaList" && node.SafeParent().Next == null &&
                node.SafeParent().SafeParent().Name == "forCondition")
            {
                return(true);
            }
            return(false);
        }
示例#11
0
        public override bool ProtectedIsAcceptedUsingOracle(CstNode node)
        {
            var p      = node.Parent;
            var pp     = p.Parent;
            var isPar  = p.SafeName() == "parExpression";
            var isStmt = pp.SafeName() == "statement";

            if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "if")
            {
                return(node.TokenText != "true");
            }
            if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "while")
            {
                return(node.TokenText != "true");
            }
            if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "do")
            {
                return(node.TokenText != "true");
            }
            if (p.SafeName() == "forstatement" &&
                p.Children().Count(e2 => e2.TokenText == ";") >= 2)
            {
                return(node.TokenText != "true");
            }
            if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "switch")
            {
                return(true);
            }
            if (node.Name == "switchLabel")
            {
                return(true);
            }
            {
                var primary = node.SafeParent().SafeParent().SafeParent().SafeParent();
                if (primary.SafeName() != "primary")
                {
                    return(false);
                }
                if (primary.Children().All(e2 => e2.TokenText != "checkArgument"))
                {
                    return(false);
                }
                if (node.PrevsFromFirst().Any())
                {
                    return(false);
                }
                return(node.TokenText != "true");
            }
        }
示例#12
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
     var pName = node.SafeParent().FirstChild.Name;
     if (pName == "Switch") {
         return true;
     }
     return node.Name == "casestatement" || node.Name == "defaultcase";
 }
示例#13
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
     var siblings = node.Siblings().ToList();
     var parent = node.Parent;
     if (parent.SafeName() == "stat" && siblings[0].TokenText == "if") {
         return node.TokenText != "true";
     }
     if (parent.SafeName() == "stat" && siblings[0].TokenText == "while") {
         return node.TokenText != "true";
     }
     if (parent.SafeName() == "stat" && siblings[0].TokenText == "repeat") {
         return node.TokenText != "true";
     }
     var ppp = node.SafeParent().SafeParent().SafeParent();
     var pppp = ppp.SafeParent();
     if (pppp.SafeName() == "functioncall" && ppp.Prev != null
         && ppp.Prev.TokenText == "print") {
         return node.TokenText != "true";
     }
     return false;
 }
示例#14
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
     var ppp = node.SafeParent().SafeParent().SafeParent();
     var pppp = ppp.SafeParent();
     if (pppp.SafeName() == "functioncall" && ppp.Prev != null
         && ppp.Prev.TokenText == "print") {
         return true;
     }
     return false;
 }
示例#15
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
     var pName = node.SafeParent().FirstChild.Name;
     if (pName == "If") {
         return true;
     }
     if (pName == "While") {
         return true;
     }
     if (pName == "Do") {
         return true;
     }
     if (node.SafeParent().Name == "commaList" && node.SafeParent().Next == null
         && node.SafeParent().SafeParent().Name == "forCondition") {
         return true;
     }
     return false;
 }
示例#16
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
     var pName = node.SafeParent().FirstChild.Name;
     if (pName == "Do") {
         return true;
     }
     return false;
 }
示例#17
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
     if (node.SafeParent().Name == "commaList"
         && node.SafeParent().SafeParent().Name == "forCondition"
         && !node.NextsFromSelf().Any()) {
         return true;
     }
     return false;
 }
示例#18
0
        //public override IEnumerable<SelectedFragment> RejectingFragments {
        //    get {
        //        return new[] {
        //            new SelectedFragment(13, @"for (; true;)", "true"),
        //            new SelectedFragment(@"while (true) {", "true"),
        //            new SelectedFragment(@"} while (true)", "true"),
        //            new SelectedFragment(@"if (true) {", "true"),
        //            new SelectedFragment(16, @"if (true) {", "true")
        //        };
        //    }
        //}

        public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
            var parentName = node.Parent.SafeName();
            if (parentName == "ifStatement") {
                return node.TokenText != "true";
            }
            if (parentName == "whileStatement") {
                return node.TokenText != "true";
            }
            if (parentName == "doWhileStatement") {
                return node.TokenText != "true";
            }
            if (parentName == "forStatement"
                && node.Prev == node.Parent.Children().First(e2 => e2.TokenText == ";")) {
                return node.TokenText != "true";
            }
            if (parentName == "switchStatement") {
                return true;
            }
            if (node.Name == "caseClause" || node.Name == "defaultClause") {
                return true;
            }
            var p = node.SafeParent().SafeParent();
            if (p.SafeName() == "callExpression" && p.FirstChild.TokenText == "console.log" &&
                p.Child("arguments").Child("assignmentExpression") == node) {
                return node.TokenText != "true";
            }
            return false;
        }
示例#19
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
     var p = node.Parent;
     var pp = p.Parent;
     var isPar = p.SafeName() == "parExpression";
     var isStmt = pp.SafeName() == "statement";
     if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "if") {
         return true;
     }
     if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "while") {
         return true;
     }
     if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "do") {
         return true;
     }
     if (p.SafeName() == "forstatement"
         && p.Children().Count(e2 => e2.TokenText == ";") >= 2) {
         return true;
     }
     {
         var primary = node.SafeParent().SafeParent().SafeParent().SafeParent();
         if (primary.SafeName() != "primary") {
             return false;
         }
         //if (primary.Elements().All(e2 => e2.TokenText() != "Preconditions")) {
         //	return false;
         //}
         if (primary.Children().All(e2 => e2.TokenText != "checkArgument")) {
             return false;
         }
         //if (primary.NthElementOrDefault(0).SafeTokenText() != "Preconditions") {
         //	return false;
         //}
         //if (primary.NthElementOrDefault(2).SafeTokenText() != "checkArgument") {
         //	return false;
         //}
         if (node.PrevsFromFirst().Any()) {
             return false;
         }
         return true;
     }
 }
示例#20
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
     if (node.SafeParent().Name == "commaList"
         && node.SafeParent().SafeParent().Name == "simpleStatement"
         && node.SafeParent().SafeParent().FirstChild.Name == "Echo"
         && node.Prev == null) {
         return true;
     }
     return false;
 }
示例#21
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
     var p = node.Parent;
     var pp = p.Parent;
     var isPar = p.SafeName() == "parExpression";
     var isStmt = pp.SafeName() == "statement";
     if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "if") {
         return node.TokenText != "true";
     }
     if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "while") {
         return node.TokenText != "true";
     }
     if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "do") {
         return node.TokenText != "true";
     }
     if (p.SafeName() == "forstatement"
         && p.Children().Count(e2 => e2.TokenText == ";") >= 2) {
         return node.TokenText != "true";
     }
     if (isStmt && isPar && pp.FirstChild.SafeTokenText() == "switch") {
         return true;
     }
     if (node.Name == "switchLabel") {
         return true;
     }
     {
         var primary = node.SafeParent().SafeParent().SafeParent().SafeParent();
         if (primary.SafeName() != "primary") {
             return false;
         }
         if (primary.Children().All(e2 => e2.TokenText != "checkArgument")) {
             return false;
         }
         if (node.PrevsFromFirst().Any()) {
             return false;
         }
         return node.TokenText != "true";
     }
 }
示例#22
0
 public override bool ProtectedIsAcceptedUsingOracle(CstNode node) {
     var pName = node.SafeParent().FirstChild.Name;
     if (pName == "If") {
         return node.TokenText.ToLower() != "true";
     }
     if (pName == "While") {
         return node.TokenText.ToLower() != "true";
     }
     if (pName == "Do") {
         return node.TokenText.ToLower() != "true";
     }
     if (pName == "Switch") {
         return true;
     }
     if (node.Name == "casestatement" || node.Name == "defaultcase") {
         return true;
     }
     if (node.SafeParent().Name == "commaList"
         && node.SafeParent().SafeParent().Name == "forCondition"
         && !node.NextsFromSelf().Any()) {
         return node.TokenText.ToLower() != "true";
     }
     if (node.SafeParent().Name == "commaList"
         && node.SafeParent().SafeParent().Name == "simpleStatement"
         && node.SafeParent().SafeParent().FirstChild.Name == "Echo"
         && node.Prev == null) {
         return node.TokenText.ToLower() != "true";
     }
     return false;
 }