Описание тега sweet.js

Sweet.js - это библиотека Mozilla для добавления компиляции макросов в JavaScript.
1 ответ

Sweet.js ничего не выводит

У меня есть очень простой файл sweet.js, который я пытаюсь скомпилировать: macro @ { rule { $exp }=>{ + $exp + } } ... используя эту команду: sjs -o out.js my_file.js Но ничто не дает выхода; файл out.js создан, но в нем ничего нет. Сначала я под…
09 янв '16 в 18:43
2 ответа

Создавайте динамические комментарии с помощью sweet.js

Как я могу преобразовать следующий фрагмент: let myVar: string = 'test'; К следующему выводу: // type {string} var myVar = 'test'; используя sweetjs? ОБНОВИТЬ Я ищу способ преобразовать точный первый фрагмент кода во второй. В том числе // type {str…
30 июл '14 в 23:33
2 ответа

Sweet.js - Развернуть токен как строку

Я хочу расширить токен до строки. Например, у меня есть этот макрос: macro String { rule { $x } => { "$x" } } Я бы ожидал String 1 расширить до "1"Однако он расширяется до всего 1; Как я могу сделать это? РЕДАКТИРОВАТЬ: Это кажется невозможным сд…
09 янв '14 в 16:15
0 ответов

Конкатенация синтаксического объекта в sweet.js

Я хотел бы создать макрос в sweet.js, который позволяет пользователю писать циклы в javascript, используя что-то похожее на индексную нотацию, используемую в тензорном исчислении. Если я поставлю что-то вроде: tensor foo[i][j] = baz[j] + bar[i]; swe…
20 июл '16 в 17:02
0 ответов

Доступ к вложенным областям в sweet.js

Я пытаюсь определить некоторые макросы, которые позволяют объявлять последовательность вызовов функций для функций, которые действительно асинхронны. Макросы преобразуют эту последовательность вызовов в продолжения; а именно, функция, которая приним…
20 окт '15 в 21:48
1 ответ

Sweet.js - скобки в теле макроса

Я хочу использовать скобки в теле макроса для группировки выражений. Например: macro m { rule { ($x, $y) } => { $x >>> ($y * 5) } } Sweet.js удаляет все скобки: m(6, 7) => 6 >>> 7 * 5 Я ожидаю следующего выхода: m(6, 7) =>…
06 апр '14 в 16:25
1 ответ

Как экспортировать из sweet.js?

Я хочу создать новую макрокоманду в JS для своего проекта, и я слышал о sweet.js. После того, как я немного прочитал об этом, я нашел эту страницу, которая объясняет, как экспортировать ваши команды, но я не очень понимал систему Github и всегда виж…
25 июл '14 в 16:29
2 ответа

sweetjs добавив: ''

Я пытаюсь написать макрос с sweetjs, чтобы перейти от {a,b,c} в {a:'',b:'',c:''} в основном я хочу перечислить атрибуты объекта и создать пустой прототип с этими атрибутами. Правило, которое я написал, macro basic { rule { { $x (,) ... } } => { {…
11 фев '14 в 10:37
1 ответ

Преобразуйте аргумент sweet.js в строку

Как бы вы создали строку из аргумента в макросе sweet.js? Например: let foo = macro { rule { $name } => { console.log('$name', $name); } } var x = 42; foo x Будет выводить: console.log(x, x); Когда я предпочитаю вывод: console.log('x', x); Таким …
18 фев '14 в 05:54
1 ответ

Sweet.js Макрос, принимающий что-либо, переданный макросу, несущий структуру

У меня есть макрос, где я беру любой код между круглыми скобками. Затем я передаю его другому макросу, в котором есть правила для этого кода. Я занимаюсь другими делами в test и он назван по-другому, но я подумал, что минимальный тестовый пример буд…
25 окт '14 в 20:47
1 ответ

Как нарушить гигиену SweetJS для локальной переменной?

Я пытаюсь использовать SweetJS в моем проекте. Чтобы лучше понять и выучить SweetJS, я подумал, что начну с простого "классового" макроса (я знаю, что некоторые существуют, просто играя здесь...). Однако я не могу заставить SweetJS перестать связыва…
02 июл '15 в 02:44
1 ответ

Скомпилируйте SweetJS в строку в Node.js

Из оболочки я могу вызвать компилятор Sweet.js. sjs -m macro-providing-module -o output-directory/file.js input-directory/file.sjs Как я могу сделать то же самое из модуля Node.js, чтобы вместо вывода в указанный файл я получил скомпилированный выво…
11 янв '14 в 12:55
1 ответ

Расширьте синтаксис Javascript для добавления набора текста

Я хотел бы расширить JavaScript, чтобы добавить пользовательскую проверку типов. например function test(welcome:string, num:integer:non-zero) { console.log(welcome + num) } который будет компилироваться в: function test(welcome, num) { if(Object.pro…
26 апр '17 в 05:28
1 ответ

Как сопоставить двоеточие в sweet.js?

macro m { rule { $a: $b } => { $a($b) } } m 1: 2 Я думаю, что sweetjs интерпретирует двоеточие как маркер для класса соответствия. Если так, как я могу избежать того, что заставит sweetjs соответствовать этому как есть? Это, кажется, работает про…
16 апр '14 в 20:24
1 ответ

Каковы некоторые методы для сушки макросов в Sweet.js?

Допустим, у меня есть эти два макроса, которые идентичны, за исключением имени макроса: macro h1 { case {$name ($x (,) ...)} => { letstx $nameVal = [makeValue(unwrapSyntax(#{$name}), null)] return #{React.createElement($nameVal, $x (,) ...)} } } …
24 фев '15 в 21:51
1 ответ

Может ли Sweet.js выводить комментарии?

Название на этот вопрос отвечает на все вопросы. Я надеялся, что был способ сделать это, но я нахожу это очень трудным. На данный момент это то, что я пытался. macro statement { rule { "$x" } => { // @statement $x } } statement "my/qualified/path…
09 фев '14 в 02:34
2 ответа

Sweet.js выражение для строкового литерала

Я пытаюсь написать макрос, который будет преобразовывать токены в строки. Мой текущий макрос выглядит так: macro stringify { case { $name($token) } => { letstx $tokenStr = [makeValue(unwrapSyntax(#{$token}), #{here})]; return #{ $tokenStr } } cas…
17 июл '14 в 16:52
1 ответ

sweet.js не может вернуть #`else`

main.js import {另} from './chinese-macros'; 另 { } Китайский-macros.js export syntax 另 = function(ctx) { return #`else`; } main.js должен скомпилироваться в else {} но я получаю это сообщение об ошибке: throw this.createError(start, "not a valid expr…
25 сен '16 в 00:32
1 ответ

Захватите аргументы вызова функции с помощью sweet.js

Я пытаюсь написать правило для захвата выражения и аргументов вызова функции с помощью sweet.js. Вот мой текущий макрос (который не соответствует): macro foo { rule { ( $fn:expr ($args ...) ) } => { $fn("stuff", $args ...) // pushes "stuff" to th…
23 июл '14 в 17:31
1 ответ

Использование глобальных переменных в случае sweet.js

Я пытаюсь создать макрос, который увеличивает значение приращения в выходной файл каждый раз, когда он вызывается. Пока что у меня есть это, но оно каждый раз заново инициализирует значение 0: macro test1 { case { _ $x } => { var n = n ? n+1 : 0;…
20 окт '15 в 01:22