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:
parent
29d3f9d8bb
commit
71b715c058
@ -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
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user