Exemplo n.º 1
0
        public void AddContent(TempDataSegment value)
        {
            if (this.Contents == null)
            {
                this.Contents = new List<TempDataSegment>();
            }

            this.Contents.Add(value);
        }
Exemplo n.º 2
0
        private bool TranslateTemplateArgument(TranslationData data, out string argumentString)
        {
            TranslationDataIterator iterator = data.GetIterator();
            Token token;
            argumentString = string.Empty;
            while (iterator.Next(out token))
            {
                var segment = new TempDataSegment();

                switch (token.Term.Type)
                {
                    case TermType.Identifier:
                        {
                            argumentString += token.Contents;
                            break;
                        }

                    case TermType.Key:
                        {
                            JavaTermKey key = this.GetTermKey(token);
                            segment.Key = (int)key;
                            switch (key)
                            {
                                case JavaTermKey.Comma:
                                case JavaTermKey.Dot:
                                    {
                                        argumentString += token.Contents;
                                        break;
                                    }

                                case JavaTermKey.Greater:
                                    {
                                        return true;
                                    }

                                default:
                                    {
                                        throw new InvalidDataException("Unpexpected token in Template Argument: " + token.Contents);
                                    }
                            }

                            break;
                        }
                }
            }

            return false;
        }
Exemplo n.º 3
0
        private void TranslateParenthesisContent(TranslationData data, TempDataBlock dataBlock)
        {
            TranslationDataIterator iterator = data.GetIterator();
            Token token;
            int level = 0;
            while (iterator.Next(out token))
            {
                var segment = new TempDataSegment();

                switch (token.Term.Type)
                {
                    case TermType.IdentifierKey:
                        {
                            segment.Key = (int)this.GetTermKey(token);
                            break;
                        }

                    case TermType.Key:
                        {
                            JavaTermKey key = this.GetTermKey(token);
                            segment.Key = (int)key;
                            switch (key)
                            {
                                case JavaTermKey.ParenthesisLeft:
                                    {
                                        level++;
                                        break;
                                    }

                                case JavaTermKey.ParenthesisRight:
                                    {
                                        level--;
                                        if (level <= 0)
                                        {
                                            return;
                                        }

                                        break;
                                    }
                            }

                            break;
                        }
                }

                if (segment.Key == null)
                {
                    segment.Contents = token.Contents;
                }

                dataBlock.AddContent(segment);
            }
        }
Exemplo n.º 4
0
        private void TranslateStatementContent(TranslationData data, TempDataBlock dataBlock)
        {
            TranslationDataIterator iterator = data.GetIterator();
            Token token;
            while (iterator.Next(out token))
            {
                var segment = new TempDataSegment();

                switch (token.Term.Type)
                {
                    case TermType.IdentifierKey:
                        {
                            segment.Key = (int)this.GetTermKey(token);
                            break;
                        }

                    case TermType.Key:
                        {
                            JavaTermKey key = this.GetTermKey(token);
                            segment.Key = (int)key;
                            switch (key)
                            {
                                case JavaTermKey.Semicolon:
                                    {
                                        return;
                                    }
                            }

                            break;
                        }
                }

                if (segment.Key == null)
                {
                    segment.Contents = token.Contents;
                }

                dataBlock.AddContent(segment);
            }
        }
Exemplo n.º 5
0
        private void TranslateBraceContent(TranslationData data, TempDataBlock dataBlock)
        {
            TranslationDataIterator iterator = data.GetIterator();
            Token token;
            while (iterator.Next(out token))
            {
                var segment = new TempDataSegment();

                switch (token.Term.Type)
                {
                    case TermType.IdentifierKey:
                        {
                            segment.Key = (int)this.GetTermKey(token);
                            break;
                        }

                    case TermType.Key:
                        {
                            JavaTermKey key = this.GetTermKey(token);
                            segment.Key = (int)key;
                            switch (key)
                            {
                                case JavaTermKey.BraceLeft:
                                    {
                                        segment.Key = null;
                                        segment.BlockContents = new TempDataBlock();
                                        this.TranslateBraceContent(data, segment.BlockContents);
                                        dataBlock.AddContent(segment);
                                        continue;
                                    }

                                case JavaTermKey.BraceRight:
                                    {
                                        return;
                                    }
                            }

                            break;
                        }
                }

                // Only need the content if we don't know what this token is
                if (segment.Key == null)
                {
                    segment.Contents = token.Contents;
                }

                dataBlock.AddContent(segment);
            }
        }