Skip to content

Omit false parameter values #457

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 12 additions & 8 deletions Sources/SwiftSyntaxBuilderGeneration/Tokens.swift.gyb
Original file line number Diff line number Diff line change
Expand Up @@ -117,20 +117,24 @@ public class Misc: Token { }
let SYNTAX_TOKENS: [Token] = [
% for token in SYNTAX_TOKENS:
% class_name = type(token).__name__
% text = 'text: "' + token.text + '", ' if token.text else ""
% parameters = ["name: \"%s\"" % token.name]
% if class_name in ['Keyword', 'SwiftKeyword', 'DeclKeyword', 'StmtKeyword', 'ExprKeyword', 'PatternKeyword', 'SilKeyword']:
${class_name}(name: "${token.name}", serializationCode: ${token.serialization_code}, text: "${token.text}"),
% parameters += ["serializationCode: %s" % token.serialization_code, "text: \"%s\"" % token.text]
% elif class_name in ['PoundKeyword', 'PoundConfig', 'PoundDirectiveKeyword', 'PoundConditionalDirectiveKeyword']:
${class_name}(name: "${token.name}", kind: "${token.kind}", serializationCode: ${token.serialization_code}, text: "${token.text}"),
% elif class_name in ['Punctuator', 'Misc']:
${class_name}(name: "${token.name}", kind: "${token.kind}", serializationCode: ${token.serialization_code}, ${text}requiresLeadingSpace: ${str(token.requires_leading_space).lower()}, requiresTrailingSpace: ${str(token.requires_trailing_space).lower()}),
% elif class_name == 'Literal':
${class_name}(name: "${token.name}", kind: "${token.kind}", serializationCode: ${token.serialization_code}),
% parameters += ["kind: \"%s\"" % token.kind, "serializationCode: %s" % token.serialization_code, "text: \"%s\"" % token.text]
% elif class_name in ['Punctuator', 'Misc', 'Literal']:
% parameters += ["kind: \"%s\"" % token.kind, "serializationCode: %s" % token.serialization_code]
% if token.text:
% parameters += ["text: \"%s\"" % token.text]
% end
% parameters += ["requiresLeadingSpace: true"] if token.requires_leading_space else []
% parameters += ["requiresTrailingSpace: true"] if token.requires_trailing_space else []
% elif class_name == 'PoundObjectLiteral':
${class_name}(name: "${token.name}", kind: "${token.kind}", serializationCode: ${token.serialization_code}, ${text}description: "${token.description}", protocol: "${token.protocol}"),
% parameters += ["kind: \"%s\"" % token.kind, "serializationCode: %s" % token.serialization_code, "text: \"%s\"" % token.text, "description: \"%s\"" % token.description, "protocol: \"%s\"" % token.protocol]
% else:
% print("Unknown token `%s`", (token.name), file=sys.stderr)
% sys.exit(1)
% end
${class_name}(${", ".join(parameters)}),
% end
]
68 changes: 34 additions & 34 deletions Sources/SwiftSyntaxBuilderGeneration/gyb_generated/Tokens.swift
Original file line number Diff line number Diff line change
Expand Up @@ -167,33 +167,33 @@ let SYNTAX_TOKENS: [Token] = [
Keyword(name: "__FUNCTION__", serializationCode: 57, text: "__FUNCTION__"),
Keyword(name: "__DSO_HANDLE__", serializationCode: 58, text: "__DSO_HANDLE__"),
PatternKeyword(name: "Wildcard", serializationCode: 59, text: "_"),
Punctuator(name: "LeftParen", kind: "l_paren", serializationCode: 88, text: "(", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "RightParen", kind: "r_paren", serializationCode: 89, text: ")", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "LeftBrace", kind: "l_brace", serializationCode: 90, text: "{", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "RightBrace", kind: "r_brace", serializationCode: 91, text: "}", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "LeftSquareBracket", kind: "l_square", serializationCode: 92, text: "[", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "RightSquareBracket", kind: "r_square", serializationCode: 93, text: "]", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "LeftParen", kind: "l_paren", serializationCode: 88, text: "("),
Punctuator(name: "RightParen", kind: "r_paren", serializationCode: 89, text: ")"),
Punctuator(name: "LeftBrace", kind: "l_brace", serializationCode: 90, text: "{"),
Punctuator(name: "RightBrace", kind: "r_brace", serializationCode: 91, text: "}"),
Punctuator(name: "LeftSquareBracket", kind: "l_square", serializationCode: 92, text: "["),
Punctuator(name: "RightSquareBracket", kind: "r_square", serializationCode: 93, text: "]"),
Punctuator(name: "LeftAngle", kind: "l_angle", serializationCode: 94, text: "<", requiresLeadingSpace: true, requiresTrailingSpace: true),
Punctuator(name: "RightAngle", kind: "r_angle", serializationCode: 95, text: ">", requiresLeadingSpace: true, requiresTrailingSpace: true),
Punctuator(name: "Period", kind: "period", serializationCode: 85, text: ".", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "PrefixPeriod", kind: "period_prefix", serializationCode: 87, text: ".", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "Comma", kind: "comma", serializationCode: 84, text: ",", requiresLeadingSpace: false, requiresTrailingSpace: true),
Punctuator(name: "Ellipsis", kind: "ellipsis", serializationCode: 118, text: "...", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "Colon", kind: "colon", serializationCode: 82, text: ":", requiresLeadingSpace: false, requiresTrailingSpace: true),
Punctuator(name: "Semicolon", kind: "semi", serializationCode: 83, text: ";", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "Period", kind: "period", serializationCode: 85, text: "."),
Punctuator(name: "PrefixPeriod", kind: "period_prefix", serializationCode: 87, text: "."),
Punctuator(name: "Comma", kind: "comma", serializationCode: 84, text: ",", requiresTrailingSpace: true),
Punctuator(name: "Ellipsis", kind: "ellipsis", serializationCode: 118, text: "..."),
Punctuator(name: "Colon", kind: "colon", serializationCode: 82, text: ":", requiresTrailingSpace: true),
Punctuator(name: "Semicolon", kind: "semi", serializationCode: 83, text: ";"),
Punctuator(name: "Equal", kind: "equal", serializationCode: 86, text: "=", requiresLeadingSpace: true, requiresTrailingSpace: true),
Punctuator(name: "AtSign", kind: "at_sign", serializationCode: 80, text: "@", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "Pound", kind: "pound", serializationCode: 81, text: "#", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "AtSign", kind: "at_sign", serializationCode: 80, text: "@"),
Punctuator(name: "Pound", kind: "pound", serializationCode: 81, text: "#"),
Punctuator(name: "PrefixAmpersand", kind: "amp_prefix", serializationCode: 96, text: "&", requiresLeadingSpace: true, requiresTrailingSpace: true),
Punctuator(name: "Arrow", kind: "arrow", serializationCode: 78, text: "->", requiresLeadingSpace: false, requiresTrailingSpace: true),
Punctuator(name: "Backtick", kind: "backtick", serializationCode: 79, text: "`", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "Backslash", kind: "backslash", serializationCode: 100, text: "\\", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "ExclamationMark", kind: "exclaim_postfix", serializationCode: 99, text: "!", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "PostfixQuestionMark", kind: "question_postfix", serializationCode: 97, text: "?", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "InfixQuestionMark", kind: "question_infix", serializationCode: 98, text: "?", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "StringQuote", kind: "string_quote", serializationCode: 102, text: "\"", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "SingleQuote", kind: "single_quote", serializationCode: 120, text: "\'", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "MultilineStringQuote", kind: "multiline_string_quote", serializationCode: 103, text: "\"\"\"", requiresLeadingSpace: false, requiresTrailingSpace: false),
Punctuator(name: "Arrow", kind: "arrow", serializationCode: 78, text: "->", requiresTrailingSpace: true),
Punctuator(name: "Backtick", kind: "backtick", serializationCode: 79, text: "`"),
Punctuator(name: "Backslash", kind: "backslash", serializationCode: 100, text: "\\"),
Punctuator(name: "ExclamationMark", kind: "exclaim_postfix", serializationCode: 99, text: "!"),
Punctuator(name: "PostfixQuestionMark", kind: "question_postfix", serializationCode: 97, text: "?"),
Punctuator(name: "InfixQuestionMark", kind: "question_infix", serializationCode: 98, text: "?"),
Punctuator(name: "StringQuote", kind: "string_quote", serializationCode: 102, text: "\""),
Punctuator(name: "SingleQuote", kind: "single_quote", serializationCode: 120, text: "\'"),
Punctuator(name: "MultilineStringQuote", kind: "multiline_string_quote", serializationCode: 103, text: "\"\"\""),
PoundKeyword(name: "PoundKeyPath", kind: "pound_keyPath", serializationCode: 74, text: "#keyPath"),
PoundKeyword(name: "PoundLine", kind: "pound_line", serializationCode: 69, text: "#line"),
PoundKeyword(name: "PoundSelector", kind: "pound_selector", serializationCode: 73, text: "#selector"),
Expand All @@ -220,16 +220,16 @@ let SYNTAX_TOKENS: [Token] = [
Literal(name: "FloatingLiteral", kind: "floating_literal", serializationCode: 112),
Literal(name: "StringLiteral", kind: "string_literal", serializationCode: 113),
Literal(name: "RegexLiteral", kind: "regex_literal", serializationCode: 124),
Misc(name: "Unknown", kind: "unknown", serializationCode: 115, requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "Identifier", kind: "identifier", serializationCode: 105, requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "UnspacedBinaryOperator", kind: "oper_binary_unspaced", serializationCode: 107, requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "Unknown", kind: "unknown", serializationCode: 115),
Misc(name: "Identifier", kind: "identifier", serializationCode: 105),
Misc(name: "UnspacedBinaryOperator", kind: "oper_binary_unspaced", serializationCode: 107),
Misc(name: "SpacedBinaryOperator", kind: "oper_binary_spaced", serializationCode: 108, requiresLeadingSpace: true, requiresTrailingSpace: true),
Misc(name: "PostfixOperator", kind: "oper_postfix", serializationCode: 110, requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "PrefixOperator", kind: "oper_prefix", serializationCode: 109, requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "DollarIdentifier", kind: "dollarident", serializationCode: 106, requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "ContextualKeyword", kind: "contextual_keyword", serializationCode: 114, requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "RawStringDelimiter", kind: "raw_string_delimiter", serializationCode: 119, requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "StringSegment", kind: "string_segment", serializationCode: 104, requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "StringInterpolationAnchor", kind: "string_interpolation_anchor", serializationCode: 101, text: ")", requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "Yield", kind: "kw_yield", serializationCode: 116, text: "yield", requiresLeadingSpace: false, requiresTrailingSpace: false),
Misc(name: "PostfixOperator", kind: "oper_postfix", serializationCode: 110),
Misc(name: "PrefixOperator", kind: "oper_prefix", serializationCode: 109),
Misc(name: "DollarIdentifier", kind: "dollarident", serializationCode: 106),
Misc(name: "ContextualKeyword", kind: "contextual_keyword", serializationCode: 114),
Misc(name: "RawStringDelimiter", kind: "raw_string_delimiter", serializationCode: 119),
Misc(name: "StringSegment", kind: "string_segment", serializationCode: 104),
Misc(name: "StringInterpolationAnchor", kind: "string_interpolation_anchor", serializationCode: 101, text: ")"),
Misc(name: "Yield", kind: "kw_yield", serializationCode: 116, text: "yield"),
]