public void AddContent(TempDataSegment value) { if (this.Contents == null) { this.Contents = new List<TempDataSegment>(); } this.Contents.Add(value); }
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; }
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); } }
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); } }
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); } }