Skip to content

Commit

Permalink
Upgrade apex-parser version to 4.1.0 (#54)
Browse files Browse the repository at this point in the history
Fixes #53
  • Loading branch information
adangel committed May 25, 2024
1 parent 9b981b1 commit 2c315a1
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 3 deletions.
2 changes: 1 addition & 1 deletion WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ maven_install(
"com.google.guava:guava:31.1-jre",
"com.google.flogger:flogger-system-backend:0.7.4",
"junit:junit:4.13.2",
"io.github.apex-dev-tools:apex-parser:4.0.0",
"io.github.apex-dev-tools:apex-parser:4.1.0",
"com.google.truth:truth:1.1.3",
"com.google.code.gson:gson:2.9.0",
"org.jetbrains.kotlin:kotlin-reflect:1.7.0",
Expand Down
10 changes: 8 additions & 2 deletions src/main/java/com/google/summit/translation/Translate.kt
Original file line number Diff line number Diff line change
Expand Up @@ -1652,12 +1652,18 @@ class Translate(val file: String, private val tokens: TokenStream) : ApexParserB
SoqlFragment.mergeOf(
ctx.searchGroup()?.let { visitSearchGroup(it) },
ctx.fieldSpecList()?.let { visitFieldSpecList(it) },
ctx.filteringExpression()?.let { visitFilteringExpression(it) },
ctx.networkList()?.let { visitNetworkList(it) },
*ctx.soslWithClause().map { visitSoslWithClause(it) }.toTypedArray(),
ctx.limitClause()?.let { visitLimitClause(it) },
ctx.updateList()?.let { visitUpdateList(it) },
)

/** Translates the 'soslWithClause' grammar rule and returns a [SoqlFragment]. */
override fun visitSoslWithClause(ctx: ApexParser.SoslWithClauseContext): SoqlFragment =
SoqlFragment.mergeOf(
ctx.filteringExpression()?.let { visitFilteringExpression(it) },
ctx.networkList()?.let { visitNetworkList(it) },
)

/** Translates the 'fieldSpecList' grammar rule and returns a [SoqlFragment]. */
override fun visitFieldSpecList(ctx: ApexParser.FieldSpecListContext): SoqlFragment =
SoqlFragment.mergeOf(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,18 @@ class SoqlAndSoslTest {
assertThat(node!!.query).isEqualTo(query)
assertThat(node.bindings).hasSize(1)
}

@Test
fun soslWithUserMode() {
val query = "FIND :SecondarySearchList IN NAME FIELDS RETURNING " +
"Account(Id, Account.Name WHERE ID = '' LIMIT 100) " +
"WITH USER_MODE"

val root = parseSoqlOrSoslInCode(query)

val node = TranslateHelpers.findFirstNodeOfType<SoslExpression>(root)
assertThat(node).isNotNull()
assertThat(node!!.query).isEqualTo(query)
assertThat(node.bindings).hasSize(1)
}
}

0 comments on commit 2c315a1

Please sign in to comment.