“regex” в современной действительно “контекстно-зависимой грамматике” языков программирования?

Это действительно простая компоновка, и ее легко достичь с помощью constraintLayout. Я не включаю FrameLayout и LinearLayout, которые вы использовали в качестве оберток. Вы можете добавить их в качестве обёрток с той же шириной и высотой, что и TextView, и это не повлияет на макет. Здесь вы идете -



    

    

Когда вы устанавливаете app:layout_constraintEnd_toEndOf="parent" для второго макета («Мир»), он выравнивает макет до конца (справа). Я установил его пользовательскую ширину с помощью android:layout_width="100dp".

Для 1-го расположения («Привет») вы будете использовать

app:layout_constraintEnd_toStartOf="@id/world"
app:layout_constraintStart_toStartOf="parent"

с android:layout_width="0dp". 0dp на самом деле не будет устанавливать ширину равной 0, но будет растягивать ее между своими ограничениями. Таким образом, в этом случае он установит начало (слева) на начало родителя, а конец установит начало (слева) 2-го макета. Таким образом, он просто растянется до этого макета.

Вот как это выглядит -

Sample layout of above xml with blueprint

9
задан notnot 6 March 2009 в 19:25
поделиться

3 ответа

В особенности обратные ссылки на получение круглых скобок делают регулярные выражения более сложными, чем регулярные, контекстно-свободные, или контекстно-зависимые грамматики. Имя просто исторически выращено (как много слов). См. также этот раздел в Википедии и это объяснение с примером от Perl.

11
ответ дан 4 December 2019 в 11:44
поделиться

Существуют функции в современных реализациях регулярного выражения, которые нарушают правила классического определения регулярного выражения.

Например.NET Balancing Group Microsoft (?<name1-name2> … ):

^(?:0(?<L>)|1(?<-L>))*(?(L)(?!))$

Это действительно соответствует языку L ₀₁ = {ε, 01, 0011, 000111, …}. Но этот язык не является регулярным согласно Насосной Лемме.

3
ответ дан 4 December 2019 в 11:44
поделиться

Путем я вижу его:

  • Регулярные языки:
    • Подобранный конечными автоматами. Только одна переменная может использоваться для представления текущего "местоположения" в грамматике, которая будет согласована: Рекурсия не может быть реализована
  • Контекстно-свободные языки:
    • Подобранный стековой машиной. Текущее "местоположение" в грамматике представлено стеком в одном или другой форме. Не может "помнить" ничего, что произошло прежде
  • Контекстно-зависимые языки:
    • Большинство языков программирования
    • Все наиболее естественные языки

Я действительно знаю о синтаксических анализаторах регулярного выражения, которые позволяют Вам соответствовать против чего-то, с чем синтаксический анализатор уже встретился, достигнув чего-то как контекстно-зависимая грамматика.

Однако, синтаксические анализаторы регулярного выражения, однако сложные, они могут быть, не допускайте рекурсивное приложение правил, которое является определенным требованием для контекстно-свободных грамматик.

Термин regex, по-моему, главным образом относится к синтаксису, используемому для выражения тех регулярных грамматик (звезды и вопросительные знаки).

4
ответ дан 4 December 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: