Skip to content

Commit c24e3ab

Browse files
authored
Merge pull request #457 from kimdv/kimdv/omit-false-values
Omit false parameter values
2 parents 9efbb3f + 5868658 commit c24e3ab

File tree

2 files changed

+46
-42
lines changed

2 files changed

+46
-42
lines changed

Sources/SwiftSyntaxBuilderGeneration/Tokens.swift.gyb

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -117,20 +117,24 @@ public class Misc: Token { }
117117
let SYNTAX_TOKENS: [Token] = [
118118
% for token in SYNTAX_TOKENS:
119119
% class_name = type(token).__name__
120-
% text = 'text: "' + token.text + '", ' if token.text else ""
120+
% parameters = ["name: \"%s\"" % token.name]
121121
% if class_name in ['Keyword', 'SwiftKeyword', 'DeclKeyword', 'StmtKeyword', 'ExprKeyword', 'PatternKeyword', 'SilKeyword']:
122-
${class_name}(name: "${token.name}", serializationCode: ${token.serialization_code}, text: "${token.text}"),
122+
% parameters += ["serializationCode: %s" % token.serialization_code, "text: \"%s\"" % token.text]
123123
% elif class_name in ['PoundKeyword', 'PoundConfig', 'PoundDirectiveKeyword', 'PoundConditionalDirectiveKeyword']:
124-
${class_name}(name: "${token.name}", kind: "${token.kind}", serializationCode: ${token.serialization_code}, text: "${token.text}"),
125-
% elif class_name in ['Punctuator', 'Misc']:
126-
${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()}),
127-
% elif class_name == 'Literal':
128-
${class_name}(name: "${token.name}", kind: "${token.kind}", serializationCode: ${token.serialization_code}),
124+
% parameters += ["kind: \"%s\"" % token.kind, "serializationCode: %s" % token.serialization_code, "text: \"%s\"" % token.text]
125+
% elif class_name in ['Punctuator', 'Misc', 'Literal']:
126+
% parameters += ["kind: \"%s\"" % token.kind, "serializationCode: %s" % token.serialization_code]
127+
% if token.text:
128+
% parameters += ["text: \"%s\"" % token.text]
129+
% end
130+
% parameters += ["requiresLeadingSpace: true"] if token.requires_leading_space else []
131+
% parameters += ["requiresTrailingSpace: true"] if token.requires_trailing_space else []
129132
% elif class_name == 'PoundObjectLiteral':
130-
${class_name}(name: "${token.name}", kind: "${token.kind}", serializationCode: ${token.serialization_code}, ${text}description: "${token.description}", protocol: "${token.protocol}"),
133+
% parameters += ["kind: \"%s\"" % token.kind, "serializationCode: %s" % token.serialization_code, "text: \"%s\"" % token.text, "description: \"%s\"" % token.description, "protocol: \"%s\"" % token.protocol]
131134
% else:
132135
% print("Unknown token `%s`", (token.name), file=sys.stderr)
133136
% sys.exit(1)
134137
% end
138+
${class_name}(${", ".join(parameters)}),
135139
% end
136140
]

Sources/SwiftSyntaxBuilderGeneration/gyb_generated/Tokens.swift

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -167,33 +167,33 @@ let SYNTAX_TOKENS: [Token] = [
167167
Keyword(name: "__FUNCTION__", serializationCode: 57, text: "__FUNCTION__"),
168168
Keyword(name: "__DSO_HANDLE__", serializationCode: 58, text: "__DSO_HANDLE__"),
169169
PatternKeyword(name: "Wildcard", serializationCode: 59, text: "_"),
170-
Punctuator(name: "LeftParen", kind: "l_paren", serializationCode: 88, text: "(", requiresLeadingSpace: false, requiresTrailingSpace: false),
171-
Punctuator(name: "RightParen", kind: "r_paren", serializationCode: 89, text: ")", requiresLeadingSpace: false, requiresTrailingSpace: false),
172-
Punctuator(name: "LeftBrace", kind: "l_brace", serializationCode: 90, text: "{", requiresLeadingSpace: false, requiresTrailingSpace: false),
173-
Punctuator(name: "RightBrace", kind: "r_brace", serializationCode: 91, text: "}", requiresLeadingSpace: false, requiresTrailingSpace: false),
174-
Punctuator(name: "LeftSquareBracket", kind: "l_square", serializationCode: 92, text: "[", requiresLeadingSpace: false, requiresTrailingSpace: false),
175-
Punctuator(name: "RightSquareBracket", kind: "r_square", serializationCode: 93, text: "]", requiresLeadingSpace: false, requiresTrailingSpace: false),
170+
Punctuator(name: "LeftParen", kind: "l_paren", serializationCode: 88, text: "("),
171+
Punctuator(name: "RightParen", kind: "r_paren", serializationCode: 89, text: ")"),
172+
Punctuator(name: "LeftBrace", kind: "l_brace", serializationCode: 90, text: "{"),
173+
Punctuator(name: "RightBrace", kind: "r_brace", serializationCode: 91, text: "}"),
174+
Punctuator(name: "LeftSquareBracket", kind: "l_square", serializationCode: 92, text: "["),
175+
Punctuator(name: "RightSquareBracket", kind: "r_square", serializationCode: 93, text: "]"),
176176
Punctuator(name: "LeftAngle", kind: "l_angle", serializationCode: 94, text: "<", requiresLeadingSpace: true, requiresTrailingSpace: true),
177177
Punctuator(name: "RightAngle", kind: "r_angle", serializationCode: 95, text: ">", requiresLeadingSpace: true, requiresTrailingSpace: true),
178-
Punctuator(name: "Period", kind: "period", serializationCode: 85, text: ".", requiresLeadingSpace: false, requiresTrailingSpace: false),
179-
Punctuator(name: "PrefixPeriod", kind: "period_prefix", serializationCode: 87, text: ".", requiresLeadingSpace: false, requiresTrailingSpace: false),
180-
Punctuator(name: "Comma", kind: "comma", serializationCode: 84, text: ",", requiresLeadingSpace: false, requiresTrailingSpace: true),
181-
Punctuator(name: "Ellipsis", kind: "ellipsis", serializationCode: 118, text: "...", requiresLeadingSpace: false, requiresTrailingSpace: false),
182-
Punctuator(name: "Colon", kind: "colon", serializationCode: 82, text: ":", requiresLeadingSpace: false, requiresTrailingSpace: true),
183-
Punctuator(name: "Semicolon", kind: "semi", serializationCode: 83, text: ";", requiresLeadingSpace: false, requiresTrailingSpace: false),
178+
Punctuator(name: "Period", kind: "period", serializationCode: 85, text: "."),
179+
Punctuator(name: "PrefixPeriod", kind: "period_prefix", serializationCode: 87, text: "."),
180+
Punctuator(name: "Comma", kind: "comma", serializationCode: 84, text: ",", requiresTrailingSpace: true),
181+
Punctuator(name: "Ellipsis", kind: "ellipsis", serializationCode: 118, text: "..."),
182+
Punctuator(name: "Colon", kind: "colon", serializationCode: 82, text: ":", requiresTrailingSpace: true),
183+
Punctuator(name: "Semicolon", kind: "semi", serializationCode: 83, text: ";"),
184184
Punctuator(name: "Equal", kind: "equal", serializationCode: 86, text: "=", requiresLeadingSpace: true, requiresTrailingSpace: true),
185-
Punctuator(name: "AtSign", kind: "at_sign", serializationCode: 80, text: "@", requiresLeadingSpace: false, requiresTrailingSpace: false),
186-
Punctuator(name: "Pound", kind: "pound", serializationCode: 81, text: "#", requiresLeadingSpace: false, requiresTrailingSpace: false),
185+
Punctuator(name: "AtSign", kind: "at_sign", serializationCode: 80, text: "@"),
186+
Punctuator(name: "Pound", kind: "pound", serializationCode: 81, text: "#"),
187187
Punctuator(name: "PrefixAmpersand", kind: "amp_prefix", serializationCode: 96, text: "&", requiresLeadingSpace: true, requiresTrailingSpace: true),
188-
Punctuator(name: "Arrow", kind: "arrow", serializationCode: 78, text: "->", requiresLeadingSpace: false, requiresTrailingSpace: true),
189-
Punctuator(name: "Backtick", kind: "backtick", serializationCode: 79, text: "`", requiresLeadingSpace: false, requiresTrailingSpace: false),
190-
Punctuator(name: "Backslash", kind: "backslash", serializationCode: 100, text: "\\", requiresLeadingSpace: false, requiresTrailingSpace: false),
191-
Punctuator(name: "ExclamationMark", kind: "exclaim_postfix", serializationCode: 99, text: "!", requiresLeadingSpace: false, requiresTrailingSpace: false),
192-
Punctuator(name: "PostfixQuestionMark", kind: "question_postfix", serializationCode: 97, text: "?", requiresLeadingSpace: false, requiresTrailingSpace: false),
193-
Punctuator(name: "InfixQuestionMark", kind: "question_infix", serializationCode: 98, text: "?", requiresLeadingSpace: false, requiresTrailingSpace: false),
194-
Punctuator(name: "StringQuote", kind: "string_quote", serializationCode: 102, text: "\"", requiresLeadingSpace: false, requiresTrailingSpace: false),
195-
Punctuator(name: "SingleQuote", kind: "single_quote", serializationCode: 120, text: "\'", requiresLeadingSpace: false, requiresTrailingSpace: false),
196-
Punctuator(name: "MultilineStringQuote", kind: "multiline_string_quote", serializationCode: 103, text: "\"\"\"", requiresLeadingSpace: false, requiresTrailingSpace: false),
188+
Punctuator(name: "Arrow", kind: "arrow", serializationCode: 78, text: "->", requiresTrailingSpace: true),
189+
Punctuator(name: "Backtick", kind: "backtick", serializationCode: 79, text: "`"),
190+
Punctuator(name: "Backslash", kind: "backslash", serializationCode: 100, text: "\\"),
191+
Punctuator(name: "ExclamationMark", kind: "exclaim_postfix", serializationCode: 99, text: "!"),
192+
Punctuator(name: "PostfixQuestionMark", kind: "question_postfix", serializationCode: 97, text: "?"),
193+
Punctuator(name: "InfixQuestionMark", kind: "question_infix", serializationCode: 98, text: "?"),
194+
Punctuator(name: "StringQuote", kind: "string_quote", serializationCode: 102, text: "\""),
195+
Punctuator(name: "SingleQuote", kind: "single_quote", serializationCode: 120, text: "\'"),
196+
Punctuator(name: "MultilineStringQuote", kind: "multiline_string_quote", serializationCode: 103, text: "\"\"\""),
197197
PoundKeyword(name: "PoundKeyPath", kind: "pound_keyPath", serializationCode: 74, text: "#keyPath"),
198198
PoundKeyword(name: "PoundLine", kind: "pound_line", serializationCode: 69, text: "#line"),
199199
PoundKeyword(name: "PoundSelector", kind: "pound_selector", serializationCode: 73, text: "#selector"),
@@ -220,16 +220,16 @@ let SYNTAX_TOKENS: [Token] = [
220220
Literal(name: "FloatingLiteral", kind: "floating_literal", serializationCode: 112),
221221
Literal(name: "StringLiteral", kind: "string_literal", serializationCode: 113),
222222
Literal(name: "RegexLiteral", kind: "regex_literal", serializationCode: 124),
223-
Misc(name: "Unknown", kind: "unknown", serializationCode: 115, requiresLeadingSpace: false, requiresTrailingSpace: false),
224-
Misc(name: "Identifier", kind: "identifier", serializationCode: 105, requiresLeadingSpace: false, requiresTrailingSpace: false),
225-
Misc(name: "UnspacedBinaryOperator", kind: "oper_binary_unspaced", serializationCode: 107, requiresLeadingSpace: false, requiresTrailingSpace: false),
223+
Misc(name: "Unknown", kind: "unknown", serializationCode: 115),
224+
Misc(name: "Identifier", kind: "identifier", serializationCode: 105),
225+
Misc(name: "UnspacedBinaryOperator", kind: "oper_binary_unspaced", serializationCode: 107),
226226
Misc(name: "SpacedBinaryOperator", kind: "oper_binary_spaced", serializationCode: 108, requiresLeadingSpace: true, requiresTrailingSpace: true),
227-
Misc(name: "PostfixOperator", kind: "oper_postfix", serializationCode: 110, requiresLeadingSpace: false, requiresTrailingSpace: false),
228-
Misc(name: "PrefixOperator", kind: "oper_prefix", serializationCode: 109, requiresLeadingSpace: false, requiresTrailingSpace: false),
229-
Misc(name: "DollarIdentifier", kind: "dollarident", serializationCode: 106, requiresLeadingSpace: false, requiresTrailingSpace: false),
230-
Misc(name: "ContextualKeyword", kind: "contextual_keyword", serializationCode: 114, requiresLeadingSpace: false, requiresTrailingSpace: false),
231-
Misc(name: "RawStringDelimiter", kind: "raw_string_delimiter", serializationCode: 119, requiresLeadingSpace: false, requiresTrailingSpace: false),
232-
Misc(name: "StringSegment", kind: "string_segment", serializationCode: 104, requiresLeadingSpace: false, requiresTrailingSpace: false),
233-
Misc(name: "StringInterpolationAnchor", kind: "string_interpolation_anchor", serializationCode: 101, text: ")", requiresLeadingSpace: false, requiresTrailingSpace: false),
234-
Misc(name: "Yield", kind: "kw_yield", serializationCode: 116, text: "yield", requiresLeadingSpace: false, requiresTrailingSpace: false),
227+
Misc(name: "PostfixOperator", kind: "oper_postfix", serializationCode: 110),
228+
Misc(name: "PrefixOperator", kind: "oper_prefix", serializationCode: 109),
229+
Misc(name: "DollarIdentifier", kind: "dollarident", serializationCode: 106),
230+
Misc(name: "ContextualKeyword", kind: "contextual_keyword", serializationCode: 114),
231+
Misc(name: "RawStringDelimiter", kind: "raw_string_delimiter", serializationCode: 119),
232+
Misc(name: "StringSegment", kind: "string_segment", serializationCode: 104),
233+
Misc(name: "StringInterpolationAnchor", kind: "string_interpolation_anchor", serializationCode: 101, text: ")"),
234+
Misc(name: "Yield", kind: "kw_yield", serializationCode: 116, text: "yield"),
235235
]

0 commit comments

Comments
 (0)