// [1] Program = {Declaration | FunctionDefinition}. private bool IsProgram(out Program program) { program = new Program(); while (!(token.Kind == SyntaxKind.EndOfFileToken)) { if (ParseDeclaration(out var declaration)) { program.AddChild(declaration); } else if (ParseFunctionDefinition(out var functionDefinition)) { program.AddChild(functionDefinition); } else { break; } } return(diag.GetErrorCount() == 0); }