diff --git a/crates/codegen/src/get_node_properties.rs b/crates/codegen/src/get_node_properties.rs index db7a7781..d4ebe070 100644 --- a/crates/codegen/src/get_node_properties.rs +++ b/crates/codegen/src/get_node_properties.rs @@ -529,6 +529,13 @@ fn custom_handlers(node: &Node) -> TokenStream { "TypeCast" => quote! { tokens.push(TokenProperty::from(Token::Typecast)); }, + "CreateDomainStmt" => quote! { + tokens.push(TokenProperty::from(Token::Create)); + tokens.push(TokenProperty::from(Token::DomainP)); + if n.type_name.is_some() { + tokens.push(TokenProperty::from(Token::As)); + } + }, _ => quote! {}, } } diff --git a/crates/parser/src/codegen.rs b/crates/parser/src/codegen.rs index da011fa8..4380e461 100644 --- a/crates/parser/src/codegen.rs +++ b/crates/parser/src/codegen.rs @@ -91,4 +91,18 @@ mod tests { ], ) } + + #[test] + fn test_create_domain() { + test_get_node_properties( + "create domain us_postal_code as text check (value is not null);", + SyntaxKind::CreateDomainStmt, + vec![ + TokenProperty::from(SyntaxKind::Create), + TokenProperty::from(SyntaxKind::DomainP), + TokenProperty::from(SyntaxKind::As), + TokenProperty::from("us_postal_code".to_string()), + ], + ) + } }