Beispiel #1
0
        public static string AsNotQuoted(ITerminalNode node)
        {
            if (node == null)
                return null;

            return AsNotQuoted(node.GetText());
        }
 public override void VisitTerminal(ITerminalNode node)
 {
     if (_isOtherListener == 1)
     {
         TerminalRule terminal = new TerminalRule(node.SourceInterval, node.GetText(), node.Parent);
         Rules.Add(terminal);
     }
 }
        protected override void ProcessString(ITerminalNode @string)
        {
            base.ProcessString(@string);

            var name2 = new HashSet <string>
            {
                "add_character_modifier.name",
                "character_event.name",
                "create_character.name",
                "defined_text.name",
                "has_game_rule.name",
                "option.name",
                "per_attribute.name",
                "add_province_modifier.name"
            };

            ScriptString s = this.Strings.Last();

            if (IdManager.IgnoreValues.Contains(s.Value) ||
                IdManager.IgnoreValueRegex.IsMatch(s.Value) ||
                !IdManager.StringKeys.Any(keyPattern => s.Key.Path.LastStep.EqualsWildcard(keyPattern)) ||
                name2.Contains(s.Key.Path.LastTwoSteps))
            {
                return;
            }

            string translation = this.translator(s);

            if (translation != null)
            {
                string str = @string.GetText();
                string begin;

                begin = str[0] == '\'' ? "\'" : "\"";

                string end = "";

                int i = str.Length - 1;
                while (i >= 0 && char.IsWhiteSpace(str[i]))
                {
                    end = str[i] + end;
                    i--;
                }

                if (str[i] == '\'')
                {
                    end = '\'' + end;
                }
                else
                {
                    end = '"' + end;
                }

                translation = begin + translation + end;

                this.Rewriter.Replace(@string.Symbol, translation);
            }
        }
        private void ParseGuid(ITerminalNode node)
        {
            var text = node.GetText();

            var value = Guid.Parse(text);

            _guids.Put(node, value);
            _terminalByToken[node.Symbol] = node;
        }
Beispiel #5
0
        public override bool VisitTerminal(ITerminalNode node)
        {
            if (!node.GetText().Contains("EOF"))
            {
                output.Append(node);
            }

            return(base.VisitTerminal(node));
        }
Beispiel #6
0
            private void Process(ITerminalNode symbol)
            {
                var name = symbol.GetText();

                if (string.IsNullOrEmpty(prefix) || name.StartsWith(prefix))
                {
                    variableNames.Add(name);
                }
            }
        public override Node VisitForm(FormContext context)
        {
            ITerminalNode label = context.LABEL();
            var           form  = new FormNode(context.Start, label?.GetText());

            form.AddChild(Visit(context.block()));

            return(form);
        }
Beispiel #8
0
 private RewriteResult RewriteBacktickQuotedIdentifier(MySqlQueryWriter writer, ITerminalNode node)
 {
     if (string.Equals(node.GetText(), _backtickQuotedIdentifier, System.StringComparison.OrdinalIgnoreCase))
     {
         writer.WriteSymbol(_backtickQuotedReplacement);
         return(RewriteResult.ReplacedSymbol);
     }
     return(RewriteResult.NoChanges);
 }
        public static string AsNotQuoted(ITerminalNode node)
        {
            if (node == null)
            {
                return(null);
            }

            return(AsNotQuoted(node.GetText()));
        }
Beispiel #10
0
        public SymbolRefExpression(ITerminalNode terminalNode, ScriptLoadingContext lcontext)
            : base(terminalNode, lcontext)
        {
            m_VarName = terminalNode.GetText();

            if (!lcontext.IsDynamicExpression)
            {
                m_Ref = lcontext.Scope.Find(m_VarName);
            }
        }
Beispiel #11
0
 public void VisitTerminal(ITerminalNode node)
 {
     string value = node.GetText();
     {
         System.Console.WriteLine(
             indent()
             + "{");
         System.Console.WriteLine(
             indent()
             + "\"Text\":"
             + "\""
             + node.GetText()
             + "\""
             );
         System.Console.WriteLine(
             indent()
             + "}");
     }
 }
Beispiel #12
0
 protected SyntaxNode(ISyntaxNode parent,
                      ITerminalNode token)
 {
     Parent       = parent;
     Root         = Parent.Root;
     AllParents   = GetAllParents();
     Abstraction  = Parent.Abstraction;
     File         = parent.File;
     Line         = token.Symbol.Line;
     OriginalText = token.GetText();
 }
        private void TryParse(ITerminalNode terminalNode, Func <string, double> parser)
        {
            if (terminalNode == null)
            {
                return;
            }

            string txt = terminalNode.GetText();
            double val = parser(txt);

            m_Value = DynValue.NewNumber(val).AsReadOnly();
        }
Beispiel #14
0
        public override int VisitTerminal(ITerminalNode node)
        {
            // PREORDER ACTIONS
            string label = "<" + node.GetText() + ">" + ms_ASTElementCounter.ToString();

            m_outputStream.WriteLine("\"{0}\"->\"{1}\";", m_PTPath.Peek(), label);
            ms_ASTElementCounter++;

            // POSTORDER ACTIONS

            return(0);
        }
        private void ParseNumber(ITerminalNode node)
        {
            var text = node.GetText();

            var value = long.Parse(
                text,
                NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint | NumberStyles.AllowExponent,
                CultureInfo.InvariantCulture);

            _numbers.Put(node, value);
            _terminalByToken[node.Symbol] = node;
        }
        private void ParseBase64(ITerminalNode node)
        {
            var text = node.GetText();

            const string prefix = "#base64:";
            var          base64 = text.Substring(prefix.Length);

            var value = Convert.FromBase64String(base64);

            _base64Data.Put(node, value);
            _terminalByToken[node.Symbol] = node;
        }
Beispiel #17
0
        private void CheckLetter(ParserRuleContext context, ITerminalNode node)
        {
            if (node == null)
            {
                _diagnostics.Error("Expected letter.", new Location(_file, Range.GetRange(context)));
                return;
            }

            if (!Enum.TryParse <Variable>(node.GetText(), out Variable variable))
            {
                _diagnostics.Error("Expected letter.", new Location(_file, Range.GetRange(node)));
            }
        }
Beispiel #18
0
        protected override void ProcessString(ITerminalNode @string)
        {
            string text     = @string.GetText().Trim().Trim('"');
            string lastStep = this.CurPath.LastStep.ToLower();

            if (IdManager.IgnoreValueRegex.IsMatch(text) ||
                !IdManager.StringKeys.Any(keyPattern => lastStep.EqualsWildcard(keyPattern)))
            {
                return;
            }

            base.ProcessString(@string);
        }
Beispiel #19
0
        public static int? PositiveInteger(ITerminalNode node)
        {
            if (node == null)
                return null;

            var text = node.GetText();
            int value;
            if (!Int32.TryParse(text, out value))
                throw new ParseCanceledException(String.Format("Numeric '{0}' is not an integer.", text));
            if (value < 0)
                throw new ParseCanceledException(String.Format("Integer '{0}' is not positive.", text));

            return value;
        }
            private void AddNavigationTarget(IParseTree tree, ITerminalNode identifier, IEditorNavigationType navigationType, ImageSource glyph)
            {
                Contract.Requires(tree != null);
                Contract.Requires(navigationType != null);

                Interval sourceInterval = tree.SourceInterval;
                if (sourceInterval.a < 0 || sourceInterval.b < 0 || sourceInterval.Length <= 0)
                    return;

                IToken startToken = _tokens[sourceInterval.a];
                IToken stopToken = _tokens[sourceInterval.b];
                Span span = new Span(startToken.StartIndex, stopToken.StopIndex - startToken.StartIndex + 1);
                Span seek;
                string name = identifier != null ? identifier.GetText() : null;
                if (string.IsNullOrEmpty(name))
                {
                    seek = new Span(span.Start, 0);
                    name = "?";
                }
                else
                {
                    seek = new Span(identifier.Symbol.StartIndex, 0);
                }

                if (_mode.Count > 0)
                {
                    name = _mode.Peek() + "." + name;
                }

                _navigationTargets.Add(new EditorNavigationTarget(name, navigationType, new SnapshotSpan(_snapshot, span), new SnapshotSpan(_snapshot, seek), glyph));
            }
Beispiel #21
0
 private string parseStringLiteral(ITerminalNode node)
 {
     return node.GetText().Trim('"');
 }
 public static void TryGetUserDefinedWord(ITerminalNode node, ref string property)
 {
     if (node != null && property == null) property = node.GetText();
 }