Ошибка ожидается eof dynamo

Dynamo

Loading

  • Learn
  • Explore
  • Blog
  • Forum
  • Roadmap
  • Resources

    • Primer
    • Dictionary
    • Developer
    • Builds
    • Events
    • DesignScript Guide
    • Help Center
  • Get Dynamo
  • Privacy

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account

Comments

@BrettCTaylor

Dynamo version

1.2.0.2690

Operating system

Windows 10

What did you do?

When opening up a dynamo script written in version 1.1 I obtained an error with one of my code blocks. The code block was creating a folder path from two strings and was putting a backslash «» between the two strings.

Below is a simple test file that I created showing the problem. When I put the backslash as a string input as a variable I don’t get an error.

The Error message is «Error: EOF Expected»

image

@dimven

This is kind of supposed to fail because backslash is an escape character in C languages and usually you have to double it up. Unfortunately, I experienced a similar problem, where even doubled up, it is failing (and it was working before). The only way I could feed in a backslash character was by using single quotes like so »

dynamosandbox_2016-10-06_08-54-19

@ke-yu

@samuelcwl is this a regression?

@ke-yu

@riteshchandawar

As this has been fixed and already working, I am closing this issue.

This is expected behaviour and is not a bug. There are only certain characters that can be escaped as shown here for C# (and DesignScript tries to be close to C#): https://blogs.msdn.microsoft.com/csharpfaq/2004/03/12/what-character-escape-sequences-are-available/
You’ll notice that the same strings you’ve used in your code blocks above do not work in C#.
Namely the following characters can be escaped:

' – single quote, needed for character literals
" – double quote, needed for string literals
\ – backslash
 – Unicode character 0
a – Alert (character 7)
b – Backspace (character 8)
f – Form feed (character 12)
n – New line (character 10)
r – Carriage return (character 13)
t – Horizontal tab (character 9)
v – Vertical quote (character 11)
uxxxx – Unicode escape sequence for character with hex value xxxx

In the script that you’re using above, you’re trying to escape characters like w that are not «escapable» and you’ll therefore see the syntax error unless you use \w. The fact that it was working in 1.2 was really a bug as it was inconsistent with escape character rules.

Я создал файл JSON с несколькими элементами, которые хочу загрузить в таблицу AWS DynamoDB. Я назвал файл request-items.json. Однако, когда я запускаю команду: aws dynamodb batch-write-item --request-items file://request-items.json в интерфейсе командной строки AWS я получаю сообщение об ошибке:

Error parsing parameter '--request-items': Expected: '=', received: 'EOF' for input:

^

Я нахожусь в текущем каталоге, где находится файл request-items.json, когда запускаю команду. Проводя дополнительное исследование, я обнаружил, что наиболее распространенной причиной этой ошибки является несоблюдение правил протокола file://, которые применяются AWS. Поскольку это в моей власти, я не уверен, где я ошибаюсь.

Пример файла JSON, который я пытаюсь загрузить:

{
    "Sensors": [
        {   
            "PutRequest": {
                "Item": { 
                    "Sensor": { "S": "Banana" }
                }
            }
        },
        {   
            "PutRequest": {
                "Item": { 
                    "Sensor": { "S": "Orange" }
                }
            }
        }
    ]
}

1 ответ

Полученное сообщение об ошибке предполагает, что может возникнуть проблема с форматом или содержимым файла JSON, который вы пытаетесь загрузить. Вот несколько вещей, которые вы можете попробовать, чтобы устранить проблему:

  1. Проверьте синтаксис файла JSON: убедитесь, что файл содержит допустимые Синтаксис JSON со всеми открывающими и закрывающими скобками, фигурные скобки и кавычки правильно подобраны. Вы можете использовать онлайн JSON валидатор или линтер JSON для проверки синтаксиса вашего файла.
  2. Проверьте путь к файлу. Убедитесь, что путь к файлу JSON правильный и что файл существует в указанном месте. Ты можешь используйте команду ls, чтобы вывести список файлов в текущем каталоге и убедитесь, что файл присутствует.
  3. Проверка на наличие специальных символов. Убедитесь, что содержимое Файл JSON не содержит специальных символов или пробелов, которые может вызвать проблемы с разбором. Вы можете попробовать удалить все посторонние пробел или специальные символы, а затем повторите команду.
  4. Попробуйте использовать абсолютный путь к файлу. Попробуйте использовать абсолютный путь к файлу. вместо относительного пути к файлу указать расположение JSON файл. Например, вы можете использовать такую ​​команду, как aws dynamodb. элемент пакетной записи —request-items файл:///абсолютный/путь/к/request-items.json.
  5. Проверьте версию AWS CLI: убедитесь, что вы используете последнюю версию версия интерфейса командной строки AWS. Вы можете проверить версию, запустив команда aws —версия. Если у вас устаревшая версия, вы можете обновите его, выполнив команду pip install awscli —upgrade.

Если ни одно из вышеперечисленных решений не работает, вы можете попробовать разбить файл JSON на более мелкие фрагменты и загрузить их по отдельности, чтобы выявить любые проблемы.


0

Satya Phani
5 Апр 2023 в 17:41

Вот еще один перед (1.2.1)

codeblock-1 2 1

и после (1.3.0):

codeblock-1 3 0

Похоже, это из-за символов . Что изменилось в связи с этим?

cc: @kronz @samuelcwl @ ke-yu Похоже на регресс, ребята. Можем ли мы это исправить?

Это ожидаемое поведение и не является ошибкой. Есть только определенные символы, которые можно экранировать, как показано здесь для C # (и DesignScript пытается быть ближе к C #): https://blogs.msdn.microsoft.com/csharpfaq/2004/03/12/what-character-escape -последовательности-доступны-доступны /
Вы заметите, что те же строки, которые вы использовали в приведенных выше блоках кода, не работают в C #.
А именно следующие символы могут быть экранированы:

' – single quote, needed for character literals
" – double quote, needed for string literals
\ – backslash
 – Unicode character 0
a – Alert (character 7)
b – Backspace (character 8)
f – Form feed (character 12)
n – New line (character 10)
r – Carriage return (character 13)
t – Horizontal tab (character 9)
v – Vertical quote (character 11)
uxxxx – Unicode escape sequence for character with hex value xxxx

Вы можете увидеть их жестко запрограммированными в нашей грамматике здесь:
https://github.com/DynamoDS/Dynamo/blob/0622384b0bbffd5a2de617b8d4a8ad3aaeb72396/src/Engine/ProtoCore/Parser/atg/Start.atg#L665

В сценарии, который вы используете выше, вы пытаетесь экранировать символы, такие как w , которые нельзя экранировать, и поэтому вы увидите синтаксическую ошибку, если не используете \w . Тот факт, что он работал в 1.2, был действительно ошибкой, поскольку он не соответствовал правилам escape-символов.

К вашему сведению: @Racel

Спасибо за объяснение. К сожалению, это усложняет ситуацию для некодировщиков без надобности ИМО. Если для регулярного выражения используется определенный синтаксис, становится излишне сложным знать, какие символы нужно экранировать с помощью дополнительного , а какие нет, поскольку они не работают единообразно по всем направлениям. Это очень затрудняет работу с инструментом.

@dbaldacchino , поэтому у нас есть узел String в дополнение к узлам блока кода. Строго говоря, строки блока кода позволяют экранировать определенные символы, чтобы кодировать строки, которые они хотят создать, включая такие вещи, как пробелы и т. Д. DesignScript не имеет ничего для строковых литералов в своем синтаксисе, что вы и ищете for, но это именно то, для чего String узел
image

Понятно, я ценю ваше объяснение. Строковый узел с этого момента, когда возникает этот вариант использования :) Удачных выходных!

Была ли эта страница полезной?

0 / 5 — 0 рейтинги

Я использую игровой фреймворк 2.3.9. и мой build.sbt выдает ошибку ошибка: ожидается eof, но найдено ‘}’.
}
^

Ниже мой файл build.sbt

import sbt.Keys._
import sbt._

object ApplicationBuild extends Build {

  val appName = "ReliaCloud"
  val appVersion = "1.0-SNAPSHOT"
//added this for 2.3
  lazy val root = (project in file(".")).enablePlugins(PlayJava)

  val appDependencies = Seq(
    // Add your project dependencies here,
    javaCore, jdbc, javaJdbc,
    "org.mongodb.morphia" % "morphia" % "1.0.1",
    "org.mongodb" % "mongo-java-driver" % "2.10.1",
    "postgresql" % "postgresql" % "9.1-901-1.jdbc4",
    "ws.securesocial" %% "securesocial" % "2.1.4"
  )
  val main = Project(appName, file(".")).enablePlugins(play.PlayJava).settings(
resolvers += "Maven repository" at "http://morphia.googlecode.com/svn/mavenrepo/",
resolvers += "MongoDb Java Driver Repository" at "http://repo1.maven.org/maven2/org/mongodb/mongo-java-driver/",
resolvers += Resolver.sonatypeRepo("releases")
  )
}

Не могу понять, почему я получаю эту ошибку.
Мое приложение построено с использованием playframework 2.2, и я пытаюсь перенести его на playframework 2.3.xx

Я использую Javascript-версию скрипта Unity ScoreManager, и когда я впервые импортировал его в свой проект Unity, у меня возникла ошибка, сообщающая мне

ошибка BCE0018 имя «текст» не обозначает допустимый тип («не найден»). Возможно, вы имели в виду «NUnit.Framework.Internal.Test»?

У кого-то была такая же проблема, и в ответах было предложено попробовать добавить import UnityEngine.UI;. Я попробовал это, и это исправило ошибку BCE0018, но теперь появилась совершенно новая ошибка, и я не знаю, как ее исправить. Новая ошибка

BCE0044 ожидает EOF, обнаружен импорт.

Я провел некоторое исследование, и у других людей были похожие проблемы с } и var, но я еще не видел ни одной проблемы с импортом. Мысли? Вот копия полного сценария, с которым я работаю.

pragma strict


static var score : int; // The player's score.

private var text : Text;       // Reference to the Text component.

import UnityEngine.UI;

function Awake ()
{
    // Set up the reference.
    text = GetComponent (Text);

    // Reset the score.
    score = 0;
}

function Update ()
{
    // Set the displayed text to be the word "Score" followed by the score value.
    text.text = "Score: " + score;
}

Функция, которую вы пытаетесь сделать, в основном такова:

function(...)
    x
end

Эта функция недействительна; Вы читаете x но ничего не делаете с ним, и поскольку выражения Lua не могут существовать в качестве операторов, вы получаете ошибку синтаксического анализа.

Вы имели в виду, вероятно, lua.LoadString("return x", "root.lua"). Однако это все равно не будет работать, потому что x является локальным для файла, в котором вы его определили; внешние функции не могут получить к нему доступ. Либо x должен быть глобальным, либо (более предпочтительно) вы определяете функцию getter внутри файла, в котором вы определяете x.

Понравилась статья? Поделить с друзьями:
  • Ошибка ожидаемый неквалифицированный идентификатор перед токеном
  • Ошибка ое на стиральной машинке лджи
  • Ошибка ое на стиральной машине элджи
  • Ошибка ое на машинке lg при отжиме что
  • Ошибка ое на машинке lg не сливает