| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- // Exceptions. See /LICENSE for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- #include "toolchain/semantics/semantics_context.h"
- #include "toolchain/semantics/semantics_node.h"
- namespace Carbon {
- auto SemanticsHandleAddress(SemanticsContext& context,
- ParseTree::Node parse_node) -> bool {
- return context.TODO(parse_node, "HandleAddress");
- }
- auto SemanticsHandleGenericPatternBinding(SemanticsContext& context,
- ParseTree::Node parse_node) -> bool {
- return context.TODO(parse_node, "GenericPatternBinding");
- }
- auto SemanticsHandlePatternBinding(SemanticsContext& context,
- ParseTree::Node parse_node) -> bool {
- auto [type_node, parsed_type_id] =
- context.node_stack().PopExpressionWithParseNode();
- auto cast_type_id = context.ExpressionAsType(type_node, parsed_type_id);
- // Get the name.
- auto [name_node, name_id] =
- context.node_stack().PopWithParseNode<ParseNodeKind::Name>();
- // Allocate storage, linked to the name for error locations.
- context.AddNodeAndPush(parse_node, SemanticsNode::VarStorage::Make(
- name_node, cast_type_id, name_id));
- return true;
- }
- auto SemanticsHandleTemplate(SemanticsContext& context,
- ParseTree::Node parse_node) -> bool {
- return context.TODO(parse_node, "HandleTemplate");
- }
- } // namespace Carbon
|