in Backend/Core/ForTea.Core/Parsing/T4Parser.cs [114:130]
public override TreeElement ParseDirective()
{
var lookahead = myLexer.LookaheadToken(1);
if (lookahead == T4TokenNodeTypes.TEMPLATE) return ParseTemplateDirective();
if (lookahead == T4TokenNodeTypes.PARAMETER) return ParseParameterDirective();
if (lookahead == T4TokenNodeTypes.OUTPUT) return ParseOutputDirective();
if (lookahead == T4TokenNodeTypes.ASSEMBLY) return ParseAssemblyDirective();
if (lookahead == T4TokenNodeTypes.IMPORT) return ParseImportDirective();
if (lookahead == T4TokenNodeTypes.INCLUDE) return ParseIncludeDirective();
if (lookahead == T4TokenNodeTypes.CLEANUP_BEHAVIOR) return ParseCleanupBehaviorDirective();
if (lookahead == T4TokenNodeTypes.UNKNOWN_DIRECTIVE_NAME) return ParseUnknownDirective();
// Failure
var result = TreeElementFactory.CreateCompositeElement(ElementType.UNKNOWN_DIRECTIVE);
var tempParsingResult = Match(T4TokenNodeTypes.DIRECTIVE_START);
result.AppendNewChild(tempParsingResult);
return HandleErrorInDirective(result, new UnexpectedToken("Missing directive name"));
}