Я работаю над грамматикой для языка, который поддерживает оператор сдвига вправо и универсальные типы.Например:
function rectangle(): Pair<Tuple<Float, Float>> {
let x = 0 >> 2;
}
Моя проблема заключается в том, что во время сканирования оператор сдвига вправо корректно маркируется, но >>
в Pair<Tuple<Float, Float>>
становится одним токеном >>
вместо двух отдельных >
токены (если я не добавлю пробел).Это потому, что у меня есть >>
перед >
в моем файле .jison:
">>" { return '>>' }
">" { return '>' }
Есть ли хороший способ решить эту проблему в Jison?Я чувствую, что это распространенная проблема, поскольку мой синтаксис похож на любой другой язык C-стиля, но я пока не нашел его решения (кроме написания сценария предварительного сканирования, который вручную разделяет пробел >
s)).