問題タブ [ambiguity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - JavaCC: トークンから文字列を除外するにはどうすればよいですか? (別名、トークンのあいまいさを理解する。)
私は、あいまいなトークンをJavaCCでエレガントに(または何らかの形で)処理する方法を理解する上で、すでに多くの問題を抱えていました。この例を見てみましょう:
XML処理命令をパースしたい。
形式は次のとおりです: :は"<?" <target> <data> "?>"
XML名target
です。data
?>
それでは、JavaCC でこれを定義しましょう:
(この場合は語彙状態を使用しDEFAULT
、PROC_INST
)
処理命令を認識する部分:
でテストしましょう<?mytarget here-goes-some-data?>
:
ターゲットが認識されました: "target: mytarget"
。しかし今、お気に入りのJavaCC 解析エラーが発生します。
何も遭遇しませんでしたか?何も期待していませんでしたか?または何?ありがとう、JavaCC!
JavaCCのキーワードを使用できることはわかっていますMORE
が、これにより処理命令全体が1つのトークンとして提供されるため、自分でさらに解析/トークン化する必要がありました。なぜそれをすべきなのか?解析しないパーサーを書いていますか?
問題は(私が推測する)です:したがって<PI_DATA>
、「すべて」を認識します。私の定義は間違っています。JavaCC に「」以外のすべてを?>
処理命令データとして認識するように指示する必要があります。
しかし、どうすればそれを行うことができますか?
注: を使用して単一の文字のみを除外できます。またはなどの文字列を除外することはできません。JavaCC のもう 1 つの優れたアンチ機能です。~["a"|"b"|"c"]
~["abc"]
~["?>"]
ありがとうございました。
c# - LINQ to SQL を追加した後の Properties.Settings のあいまいさ
最近、ソリューションで LINQ to SQL アイテムを作成して、データベースを C# サービスにリンクしました。コーディングを続けていたので、すべてがうまくいきましたが、突然、16個のあいまいなエラーがあることに気付きました。例えば
何が起こったかというと、データベース ファイルが独自の Setting.Designer.cs を作成することを決定したことです。これで、Properties フォルダーに Settings.Designer.cs と Settings1.Designer.cs (LINQ to SQL ファイルによって作成されたもの) ができました。
データベースファイルがその設定を参照している場所を変更して、重複を削除できる方法はありますか?
antlr - Antlrを使用したあいまいな入力の解析
私は数日間、テキストと数字で構成されるテキストを解析しようと試みてきました(文法ではこれを文と呼んでいます)。
INTで終わる文を解析する必要があるルールがあります
したがって、「購入したサイズ14の靴の数は3でした」という入力がある場合、sentence_with_intは文だけでなく一致します。これを行うためのより良い方法があると確信していますが、私はツールを学んでいます。
ありがとう、リチャード
c++ - C++ でのこの例の関数オーバーロードのあいまいさの説明
私はStroustrupの本、オーバーロードと関連する曖昧さに関するセクションを読んでいます。
次のような例があります。
コメントが述べているように、呼び出しはあいまいです。なんで?
この本の前のセクションでは、仮パラメータと実際のパラメータの一致に基づく 5 つのルールについて説明しました。では、上記の関数呼び出しは「プロモーション」に関するルール 2 に該当するのではないでしょうか? 私の推測では、'i' は long に昇格する必要があり、それで終わりです。
コメントによると、int から char への変換 (降格?) もルール 2 に該当するようです。
c++ - C++ ペア テンプレートの構造体宣言があいまいです!
C++ のペア クラスの定義には、2 つの typedef があります。それらは何のため?コードでそれらを使用することはありません。
sql - なぜ Oracle SQL は、ある結合ではあいまいさを不可解に解決し、他の結合では解決しないのですか?
私は Oracle 10g ユーザーです。私はいくつかの SQL クエリを書かなければならず、不思議な (私が見た限りでは) 振る舞いを見つけました。ある種の単純な 2 レベルのツリー構造に結合できるテーブルがあるとしましょう。次のクエリでは、予期される「あいまいなエラー」が表示されます。
しかし、結合にもう 1 つのテーブルを追加すると、あいまいさの問題は単純に解消されます。
これの説明は何でしょう?私はそれを完全に見逃しています... 完全なテストケースはhttp://pastebin.com/webf513wで見つけることができます
c++ - 呼び出しのあいまいさを解決するためにクラスのコンストラクターにダミーパラメーターを追加すると、規則に違反しますか?
次のクラスと 2 つのオブジェクト定義を取ります。
前の 2 つのコンストラクターには、これらのダミー パラメーターが存在しない場合に発生する呼び出しのあいまいさを解決するためのダミーの列挙型パラメーターがあります。ここで名前付きコンストラクターを使用する可能性があるにもかかわらず、これらのダミーパラメーターを使用することを主張する場合、これは私が知っておくべきコーディング規則に違反しますか?
android - AndroidビューのIDを複数のアクティビティ間で安全に共有できますか?
Androidアプリケーションに2つのアクティビティがあるとしましょEditPerson
うEditEmployee
。
EditPerson
アクティビティをアクティビティの基本クラスにEditEmployee
し、レイアウトで定義されたビューとの間でデータをマーシャリングするメソッドを定義するのは自然なことのように思われます。アクティビティの実装は、EditPerson
(たとえば)「名前」フィールドをEditText
要素との間でプッシュします。EditEmployee
バージョンは基本クラスバージョンを呼び出してから、独自の特殊フィールド(たとえば、納税者番号など)をマーシャリングします。
EditText
共有コードを容易にするために、両方のアクティビティには、同じIDを共有する要素の1つ以上のペアを定義するレイアウトリソースが必要です。つまり、次のlayout\edit_person.xml
ようになります。
そして、次のlayout\edit_employee.xml
ようなものがあります:
「Employee」は「Person」であり、共通のフィールド(継承によってマーシャリングされる)があるため、割り当てられたID(上記の例では「name_editor」)は、アクティビティ(またはレイアウト?)。
私のテストから、これは機能しているように見えますが、このアプローチとあいまいなレイアウト要素IDの使用には、意図しない副作用が発生する可能性があります。これが安全な方法であることを誰かが確認したり、最終的にアプリケーションがどのように爆発するかを指摘したりできますか?誰かが同じようなことをしたことがありますか?
c# - プロパティが使用されている場合の C# のあいまいなエラー
最近C#の勉強を始めました。プロパティについて学んだばかりで、それらをより理解するために簡単なプログラムを作成することにしました。これは私が書いたコードです:
そして、あいまいなエラーが発生します。私が理解している限り、これは起こるべきではありません。
vb.net - VB.NET: あいまいさが存在しない場合のあいまいなクラス名エラー
私たちのクライアントは、VB.NET で .NET .DLL を使用しようとすると、次のエラーが表示されると報告しています。
エラー BC31429: 名前空間 'our.company.nspace' にこの名前の複数の種類のメンバーが存在するため、'OurClass' はあいまいです
次の1行を含むダミープロジェクトでエラーを再現することもできました
通常、これは大文字と小文字だけが異なる名前の型がいくつかあるためです。しかし、この場合、そのような曖昧さはありません。OurClass
特定の名前空間だけでなく、アセンブリ全体およびプロジェクトによって参照されるその他のアセンブリでも一意の名前です。リフレクターもこれを示しています。また、Reflector によっても検証された、同じ名前のクラス メンバーもありません。
また、奇妙なことに、ダミー プロジェクトを作成した直後はエラーが表示されなかったのに、突然エラーが表示されて消えなくなりました。実際、最初の再コンパイルが機能し、2 番目の再コンパイルは機能しなかったため、2 つの再コンパイル間で何も変更しませんでした。
それで...何が得られますか?
(注: .DLL は vjslib (J#) を使用および参照します。関連性がある場合)