0
0
mirror of https://github.com/ankidroid/Anki-Android.git synced 2024-09-20 03:52:15 +02:00

NF: handlebar_token which can accept or reject <%

This commit is contained in:
Arthur Milchior 2021-05-28 14:05:28 +02:00 committed by Arthur Milchior
parent 29d3f9d8bb
commit 71b715c058
2 changed files with 21 additions and 0 deletions

View File

@ -225,6 +225,22 @@ public class Tokenizer implements Iterator<Tokenizer.Token> {
}
/**
* @param template a part of a template to lex
* @param legacy Whether to also consider handlebar starting with <%
* @return The content of handlebar at start of template
*/
protected static @Nullable IResult handlebar_token(@NonNull String template, boolean legacy) {
IResult new_handlebar_token = new_handlebar_token(template);
if (new_handlebar_token != null) {
return new_handlebar_token;
}
if (legacy) {
return legacy_handlebar_token(template);
}
return null;
}
/**
* @param template a part of a template to lex
* @return The content of handlebar at start of template

View File

@ -15,6 +15,7 @@ import static com.ichi2.libanki.template.Tokenizer.TokenKind.REPLACEMENT;
import static com.ichi2.libanki.template.Tokenizer.TokenKind.TEXT;
import static com.ichi2.libanki.template.Tokenizer.IResult;
import static com.ichi2.libanki.template.Tokenizer.classify_handle;
import static com.ichi2.libanki.template.Tokenizer.handlebar_token;
import static com.ichi2.libanki.template.Tokenizer.legacy_handlebar_token;
import static com.ichi2.libanki.template.Tokenizer.new_handlebar_token;
import static com.ichi2.libanki.template.Tokenizer.Token;
@ -70,9 +71,13 @@ public class TokenizerTest extends RobolectricTest {
new Tokenizer.Token(token, field_name),
remaining);
assertThat(new_handlebar_token(template), is(expected));
assertThat(handlebar_token(template, true), is(expected));
assertThat(handlebar_token(template, false), is(expected));
String legacy_template = new_to_legacy(template);
IResult legacy_expected = expected.new_to_legacy();
assertThat(legacy_handlebar_token(legacy_template), is (legacy_expected));
assertThat(handlebar_token(legacy_template, true), is (legacy_expected));
assertThat(handlebar_token(legacy_template, false), nullValue());
}
private void test_handlebar_token_is_null(@NonNull String template) {