Skip to content

Commit cc2264c

Browse files
committed
C++ semantics [symbol] tags.
1 parent 8217762 commit cc2264c

File tree

4 files changed

+205
-174
lines changed

4 files changed

+205
-174
lines changed

clang-tools/ClangKast/GetKastVisitor.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ class GetKastVisitor
355355
TALI->NumTemplateArgs));
356356
} else {
357357
Kast::add(Kast::KApply("TemplateSpecialization", Sort::DECL, {Sort::ATYPE, Sort::DECL}));
358-
Kast::add(Kast::KApply("TemplateSpecializationType", Sort::ATYPE, {Sort::CID}));
358+
Kast::add(Kast::KApply("TemplateSpecializationType2", Sort::ATYPE, {Sort::CID}));
359359
TRY_TO(TraverseDeclarationName(FTSI->getTemplate()->getDeclName()));
360360
}
361361
} else if (FTSI->getTemplateSpecializationKind() != TSK_Undeclared &&
@@ -378,7 +378,7 @@ class GetKastVisitor
378378
} else {
379379
Kast::add(Kast::KApply("TemplateInstantiationDeclaration", Sort::DECL, {Sort::ATYPE, Sort::DECL}));
380380
}
381-
Kast::add(Kast::KApply("TemplateSpecializationType", Sort::ATYPE, {Sort::CID}));
381+
Kast::add(Kast::KApply("TemplateSpecializationType2", Sort::ATYPE, {Sort::CID}));
382382
TRY_TO(TraverseDeclarationName(FTSI->getTemplate()->getDeclName()));
383383
}
384384
}
@@ -1070,7 +1070,13 @@ class GetKastVisitor
10701070
if (T->getSizeModifier() != clang::ArrayType::Normal) {
10711071
throw std::logic_error("unimplemented: static/* array");
10721072
}
1073-
Kast::add(Kast::KApply("ArrayType", Sort::ATYPE, {Sort::ATYPE, sort}));
1073+
std::string arr;
1074+
if (sort == Sort::AEXPR) {
1075+
arr = "ArrayTypeAExpr";
1076+
} else {
1077+
arr = "ArrayType";
1078+
}
1079+
Kast::add(Kast::KApply(arr, Sort::ATYPE, {Sort::ATYPE, sort}));
10741080
TRY_TO(TraverseType(T->getElementType()));
10751081
return true;
10761082
}

semantics/common/compat.k

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ module COMPAT-SYNTAX
3838
syntax KItem ::= set(Set)
3939

4040
syntax K ::= listToK(List) [function]
41-
syntax List ::= kSeqToList(K) [function]
41+
syntax List ::= kSeqToList(K) [function, symbol]
4242

4343
syntax KTuple ::= kpair(K, K)
4444
| ktriple(K, K, K)

0 commit comments

Comments
 (0)