private ReplaceToken(Scope scope, ReplaceStartToken startToken) : base(scope) { _startToken = startToken; _startToken.ReplaceToken = this; AddToken(startToken); }
public static ReplaceToken Parse(Scope scope, ReplaceStartToken startToken) { #if DEBUG if (startToken == null) { throw new ArgumentNullException("replaceToken"); } #endif var scopeIndent = scope.CloneIndent(); var ret = new ReplaceToken(scope, startToken); var done = false; while (!done && !scope.Code.EndOfFile) { var stmt = StatementToken.TryParse(scopeIndent, t => { if (t is ReplaceEndToken) { ret._endToken = t as ReplaceEndToken; ret._endToken.ReplaceToken = ret; done = true; } else if (ret._withToken == null) { if (t is ReplaceWithToken) { ret._withToken = t as ReplaceWithToken; ret._withToken.ReplaceToken = ret; } else { ret._oldTokens.Add(t); } } else { ret._newTokens.Add(t); } }); } return(ret); }