Skip to content

Commit 88a0b52

Browse files
committed
refactor(cpp): simplify code #24
1 parent 1d229bd commit 88a0b52

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

Diff for: chapi-ast-cpp/src/main/kotlin/chapi/ast/cppast/CPPFullIdentListener.kt

+13-14
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,31 @@ class CPPFullIdentListener(fileName: String) : CPP14ParserBaseListener() {
1313

1414
override fun enterFunctionDefinition(ctx: CPP14Parser.FunctionDefinitionContext?) {
1515
val method = CodeFunction()
16-
val context = ctx!!
1716

18-
if (context.declSpecifierSeq() != null) {
19-
method.ReturnType = context.declSpecifierSeq().text
17+
ctx?.declarator()?.let {
18+
method.Name = it.text
2019
}
21-
22-
val firstPtrDecl = context.declarator().pointerDeclarator() ?: return
23-
if (firstPtrDecl.noPointerDeclarator() != null) {
24-
tryFunctionBuild(firstPtrDecl, method)
20+
ctx?.declSpecifierSeq()?.let {
21+
method.ReturnType = it.text
2522
}
26-
}
2723

28-
private fun tryFunctionBuild(firstPtrDecl: CPP14Parser.PointerDeclaratorContext, method: CodeFunction) {
29-
val parametersAndQualifiersContext = firstPtrDecl.noPointerDeclarator().parametersAndQualifiers() ?: return
30-
method.Name = firstPtrDecl.noPointerDeclarator().noPointerDeclarator().text
24+
val firstPtrDecl = ctx?.declarator()?.pointerDeclarator() ?: return
25+
val noPointerDeclarator = firstPtrDecl.noPointerDeclarator() ?: return
26+
27+
val parameters = noPointerDeclarator.parametersAndQualifiers() ?: return
28+
29+
method.Name = noPointerDeclarator.noPointerDeclarator().text
3130

32-
parametersAndQualifiersContext.parameterDeclarationClause()?.let {
31+
parameters.parameterDeclarationClause()?.let {
3332
method.Parameters = buildParameters(it)
3433
}
3534

3635
defaultNode.Functions += method
3736
}
3837

3938
private fun buildParameters(parameterDeclaration: CPP14Parser.ParameterDeclarationClauseContext): List<CodeProperty> {
40-
return parameterDeclaration.parameterDeclarationList()?.let {
41-
it.parameterDeclaration().map {
39+
return parameterDeclaration.parameterDeclarationList()?.let { listContext ->
40+
listContext.parameterDeclaration().map {
4241
val type = it.declSpecifierSeq().declSpecifier().firstOrNull()?.typeSpecifier()?.text
4342
val name = it.declarator()?.text
4443

0 commit comments

Comments
 (0)