ইংরেজিফরাসিস্প্যানিশ

Ad


অনওয়ার্কস ফেভিকন

FileCheck-3.6 - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks বিনামূল্যে হোস্টিং প্রদানকারীতে FileCheck-3.6 চালান

এটি হল FileCheck-3.6 কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


ফাইল চেক - নমনীয় প্যাটার্ন ম্যাচিং ফাইল যাচাইকারী

সাইনোপিসিস


ফাইলচেক ম্যাচ-ফাইলের নাম [--চেক-প্রিফিক্স=XXX] [--কঠোর-সাদা স্থান]

বর্ণনাঃ


ফাইলচেক দুটি ফাইল পড়ে (একটি স্ট্যান্ডার্ড ইনপুট থেকে এবং একটি কমান্ড লাইনে নির্দিষ্ট)
এবং অন্যটিকে যাচাই করতে একটি ব্যবহার করে। এই আচরণ টেস্টসুইটের জন্য বিশেষভাবে উপযোগী,
যা কিছু টুলের আউটপুট যাচাই করতে চায় (যেমন LLC) প্রত্যাশিত ধারণ করে
তথ্য (উদাহরণস্বরূপ, esp থেকে একটি movsd বা যা কিছু আকর্ষণীয়)। এই অনুরূপ
ব্যবহার করতে , grep, কিন্তু এটি একটি ফাইলে একাধিক ভিন্ন ইনপুট মেলানোর জন্য অপ্টিমাইজ করা হয়েছে
নির্দিষ্ট আদেশ।

সার্জারির ম্যাচ-ফাইলের নাম ফাইল ফাইলটি নির্দিষ্ট করে যাতে মিলের নিদর্শন রয়েছে। ফাইল
যাচাই করতে স্ট্যান্ডার্ড ইনপুট থেকে পড়া হয় যদি না --ইনপুট ফাইল বিকল্প ব্যবহার করা হয়।

বিকল্প


-হেল্প কমান্ড লাইন বিকল্পগুলির একটি সারাংশ মুদ্রণ করুন।

--চেক-প্রিফিক্স উপসর্গ
FileCheck এর বিষয়বস্তু অনুসন্ধান করে ম্যাচ-ফাইলের নাম নিদর্শন মেলে জন্য. দ্বারা
ডিফল্ট, এই প্যাটার্নগুলি "এর সাথে উপসর্গযুক্ত হয়চেক করুন:আপনি যদি একটি ব্যবহার করতে চান
ভিন্ন উপসর্গ (যেমন কারণ একই ইনপুট ফাইল একাধিক ভিন্ন পরীক্ষা করছে
টুল বা অপশন), the --চেক-প্রিফিক্স যুক্তি আপনাকে এক বা একাধিক নির্দিষ্ট করতে দেয়
মেলে উপসর্গ। একাধিক উপসর্গ পরীক্ষার জন্য দরকারী যা পরিবর্তিত হতে পারে
বিভিন্ন রান অপশন, কিন্তু অধিকাংশ লাইন একই থাকে।

--ইনপুট ফাইল ফাইলের নাম
পরীক্ষা করার জন্য ফাইল (স্টডিনে ডিফল্ট)।

--কঠোর-সাদা স্থান
ডিফল্টরূপে, ফাইলচেক ইনপুট অনুভূমিক হোয়াইটস্পেস (স্পেস এবং ট্যাব) ক্যানোনিকালাইজ করে
যার কারণে এটি এই পার্থক্যগুলিকে উপেক্ষা করে (একটি স্থান একটি ট্যাবের সাথে মিলবে)। দ্য
--কঠোর-সাদা স্থান যুক্তি এই আচরণ নিষ্ক্রিয়. এন্ড-অফ-লাইন সিকোয়েন্স হয়
UNIX-শৈলীতে ক্যানোনিকালাইজ করা হয়েছে \n সব মোডে।

--ইমপ্লিসিট-চেক-না চেক-প্যাটার্ন
ইতিবাচক চেকগুলির মধ্যে নির্দিষ্ট প্যাটার্নগুলির জন্য অন্তর্নিহিত নেতিবাচক চেকগুলি যোগ করে৷
বিকল্পটি তাদের সাথে স্টাফ না করে কঠোর পরীক্ষা লেখার অনুমতি দেয় চেক-নাs.

উদাহরণ স্বরূপ, "--ইমপ্লিসিট-চেক-না সতর্কতা:" ডায়গনিস্টিক পরীক্ষা করার সময় দরকারী হতে পারে৷
টুল থেকে বার্তা যেগুলির অনুরূপ বিকল্প নেই ঝনঝন - যাচাই করুন। এর সাথে
অপশন FileCheck যাচাই করবে যে ইনপুটে এমন সতর্কতা নেই যা কভার করে না
কোন চেক করুন: নিদর্শন।

-version
এই প্রোগ্রামের সংস্করণ নম্বর দেখান.

প্রস্থান করুন স্থিতি


If ফাইলচেক যাচাই করে যে ফাইলটি প্রত্যাশিত বিষয়বস্তুর সাথে মেলে, এটি 0 দিয়ে প্রস্থান করে।
অন্যথায়, যদি না হয়, বা যদি একটি ত্রুটি ঘটে, এটি একটি অ-শূন্য মান সহ প্রস্থান করবে।

টিউটোরিয়াল


ফাইলচেক সাধারণত LLVM রিগ্রেশন পরীক্ষা থেকে ব্যবহৃত হয়, এর RUN লাইনে আহ্বান করা হচ্ছে
পরীক্ষা. একটি RUN লাইন থেকে FileCheck ব্যবহার করার একটি সহজ উদাহরণ এই মত দেখায়:

; RUN: llvm- as < %s | llc -march=x86-64 | ফাইলচেক %s

এই সিনট্যাক্সটি বর্তমান ফাইলটি পাইপ করতে বলে ("%s") মধ্যে llvm- হিসাবে, পাইপ যে মধ্যে LLC, তারপর
এর আউটপুট পাইপ করুন LLC মধ্যে ফাইলচেক. এর মানে হল যে FileCheck এটি যাচাই করবে
স্ট্যান্ডার্ড ইনপুট (এলএলসি আউটপুট) নির্দিষ্ট ফাইলের নাম আর্গুমেন্টের বিরুদ্ধে (মূল .ll
ফাইল " দ্বারা নির্দিষ্ট%s") এটি কীভাবে কাজ করে তা দেখতে, এর বাকি অংশগুলি দেখুন .ll ফাইল
(RUN লাইনের পরে):

অকার্যকর সংজ্ঞায়িত করুন @sub1(i32* %p, i32 %v) {
প্রবেশ:
; চেক করুন: sub1:
; চেক: subl
%0 = টেল কল i32 @llvm.atomic.load.sub.i32.p0i32(i32* %p, i32 %v)
ret void
}

void সংজ্ঞায়িত করুন @inc4(i64* %p) {
প্রবেশ:
; চেক করুন: inc4:
; চেক করুন: incq
%0 = টেল কল i64 @llvm.atomic.load.add.i64.p0i64(i64* %p, i64 1)
ret void
}

এখানে আপনি কিছু দেখতে পারেন "চেক করুন:" লাইনগুলো কমেন্টে উল্লেখ করা হয়েছে। এখন আপনি দেখতে পাচ্ছেন কেমন ফাইল
মধ্যে পাইপ করা হয় llvm- হিসাবে, তারপর LLC, এবং মেশিন কোড আউটপুট যা আমরা যাচাই করছি।
ফাইলচেক মেশিন কোড আউটপুট পরীক্ষা করে যাচাই করে যে এটি "চেক করুন:" লাইন
উল্লেখ করুন।

এর সিনট্যাক্স "চেক করুন:" লাইনগুলি খুব সহজ: এগুলি নির্দিষ্ট স্ট্রিং যা অবশ্যই ঘটতে হবে৷
আদেশ অনুভূমিক হোয়াইটস্পেস পার্থক্য উপেক্ষা করার জন্য ফাইলচেক ডিফল্ট (যেমন একটি স্থান হল
একটি ট্যাব মেলানোর অনুমতি দেওয়া হয়েছে) কিন্তু অন্যথায়, "এর বিষয়বস্তুচেক করুন:" লাইন প্রয়োজন
পরীক্ষার ফাইলে কিছু জিনিস ঠিক মেলে।

ফাইলচেক সম্পর্কে একটি চমৎকার জিনিস (গ্রেপের তুলনায়) হল এটি পরীক্ষার কেসগুলিকে একত্রিত করার অনুমতি দেয়
লজিক্যাল গ্রুপে একসাথে। উদাহরণস্বরূপ, কারণ উপরের পরীক্ষাটি পরীক্ষা করছে
"উপ1:" এবং "inc4:"লেবেল, এটি মিলবে না যদি না থাকে"subl"এর মধ্যে
লেবেল. যদি এটি ফাইলের অন্য কোথাও বিদ্যমান থাকে তবে এটি গণনা করা হবে না: ", grep subl"
মেলে যদি "subl" ফাইলের যেকোনো জায়গায় বিদ্যমান।

সার্জারির ফাইলচেক -চেক-প্রিফিক্স পছন্দ
ফাইলচেক -চেক-প্রিফিক্স বিকল্পটি একাধিক পরীক্ষা কনফিগারেশন থেকে চালিত হতে দেয়
এক .ll ফাইল এটি অনেক পরিস্থিতিতে দরকারী, উদাহরণস্বরূপ, বিভিন্ন পরীক্ষা করা
সঙ্গে স্থাপত্য বৈকল্পিক LLC. এখানে একটি সহজ উদাহরণ:

; RUN: llvm- as < %s | llc -mtriple=i686-apple-darwin9 -mattr=sse41 \
; চালান: | ফাইলচেক %s -চেক-প্রিফিক্স=X32
; RUN: llvm- as < %s | llc -mtriple=x86_64-apple-darwin9 -mattr=sse41 \
; চালান: | ফাইলচেক %s -চেক-প্রিফিক্স=X64

<4 x i32> @pinsrd_1(i32 %s, <4 x i32> %tmp) বিশেষ্য {
%tmp1 = insertelement <4 x i32>; %tmp, i32 %s, i32 1
ret <4 x i32> %tmp1
; X32: pinsrd_1:
; X32: pinsrd $1, 4(%esp), %xmm0

; X64: pinsrd_1:
; X64: pinsrd $1, %edi, %xmm0
}

এই ক্ষেত্রে, আমরা পরীক্ষা করছি যে আমরা 32-বিট এবং উভয়ের সাথে প্রত্যাশিত কোড জেনারেশন পেয়েছি
64-বিট কোড জেনারেশন।

সার্জারির চেক-পরবর্তী: নির্দেশ
কখনও কখনও আপনি লাইনগুলি মেলতে চান এবং যাচাই করতে চান যে মিলগুলি ঠিক একইভাবে ঘটে
তাদের মধ্যে অন্য কোন লাইন ছাড়া পরপর লাইন। এই ক্ষেত্রে, আপনি ব্যবহার করতে পারেন "চেক করুন:"
এবং "চেক-পরবর্তী:" এটি নির্দিষ্ট করার নির্দেশাবলী৷ আপনি যদি একটি কাস্টম চেক উপসর্গ নির্দিষ্ট করেন,
শুধু ব্যবহার করুন "-পরবর্তী:"উদাহরণস্বরূপ, এরকম কিছু কাজ করে যেমন আপনি আশা করেন:

@t2 (<2 x double>* %r, <2 x double>* %A, দ্বিগুণ %B) {
%tmp3 = লোড <2 x দ্বিগুণ>* %A, সারিবদ্ধ 16
%tmp7 = সন্নিবেশ <2 x double> undef, ডবল %B, i32 0
%tmp9 = শাফলভেক্টর <2 x ডবল> %tmp3,
<2 x দ্বিগুণ> %tmp7,
<2 x i32> < i32 0, i32 2 >
স্টোর <2 x ডবল> %tmp9, <2 x ডবল>* %r, সারিবদ্ধ 16
ret void

; চেক করুন: t2:
; চেক করুন: movl 8(%esp), %eax
; চেক-পরবর্তী: movapd (%eax), %xmm0
; চেক-পরবর্তী: movhpd 12(%esp), %xmm0
; চেক-নেক্সট: movl 4(%esp), %eax
; পরবর্তী পরীক্ষা করুন: movapd % xmm0, (% eax)
; চেক-পরবর্তী: ret
}

"চেক-পরবর্তী:" নির্দেশাবলী ইনপুট প্রত্যাখ্যান করে যদি না এটির মধ্যে একটি নতুন লাইন থাকে৷
এবং পূর্ববর্তী নির্দেশ। ক"চেক-পরবর্তী:" একটি ফাইলে প্রথম নির্দেশিকা হতে পারে না৷

সার্জারির চেক-না: নির্দেশ
দ্য "চেক-না:" নির্দেশিকাটি যাচাই করতে ব্যবহৃত হয় যে দুটির মধ্যে একটি স্ট্রিং ঘটে না৷
ম্যাচ (বা প্রথম ম্যাচের আগে বা শেষ ম্যাচের পরে)। উদাহরণস্বরূপ, এটি যাচাই করার জন্য
একটি লোড একটি রূপান্তর দ্বারা সরানো হয়, এই মত একটি পরীক্ষা ব্যবহার করা যেতে পারে:

i8 সংজ্ঞায়িত করুন @coerce_offset0(i32 %V, i32* %P) {
স্টোর i32 %V, i32* %P

%P2 = বিটকাস্ট i32* %P থেকে i8*
%P3 = getelementptr i8* %P2, i32 2

%A = লোড i8* %P3
ret i8 % A
; চেক করুন: @coerce_offset0
; চেক-নট: লোড
; চেক করুন: ret i8
}

সার্জারির চেক-ড্যাগ: নির্দেশ
যদি স্ট্রিংগুলির সাথে মিল করা প্রয়োজন হয় যা কঠোরভাবে অনুক্রমিক ক্রমে ঘটবে না,
"চেক-ড্যাগ:" দুটি ম্যাচের মধ্যে (বা প্রথম ম্যাচের আগে) তাদের যাচাই করতে ব্যবহার করা যেতে পারে,
বা শেষ ম্যাচের পরে)। উদাহরণস্বরূপ, ক্ল্যাং বিপরীত ক্রমে vtable গ্লোবাল নির্গত করে। ব্যবহার
চেক-ড্যাগ:, আমরা স্বাভাবিক ক্রমে চেক রাখতে পারি:

// RUN: %clang_cc1 %s -emit-llvm -o - | ফাইলচেক %s

struct Foo { ভার্চুয়াল অকার্যকর পদ্ধতি(); };
ফু চ; // vtable নির্গত করুন
// চেক-ড্যাগ: @_ZTV3Foo =

struct বার { ভার্চুয়াল অকার্যকর পদ্ধতি(); };
বার খ;
// চেক-ড্যাগ: @_ZTV3Bar =

চেক-না: নির্দেশের সাথে মিশ্রিত করা যেতে পারে চেক-ড্যাগ: এর মধ্যে স্ট্রিং বাদ দেওয়ার নির্দেশ
আশেপাশের চেক-ড্যাগ: নির্দেশাবলী ফলে আশপাশ চেক-ড্যাগ: নির্দেশনা
পুনর্বিন্যাস করা যাবে না, অর্থাৎ সমস্ত ঘটনা মিলে যাচ্ছে চেক-ড্যাগ: আগে চেক-না: না অবশ্যই
ঘটনা মিলে যাওয়া পিছিয়ে পড়া চেক-ড্যাগ: পরে চেক-না:। উদাহরণ স্বরূপ,

; চেক-ড্যাগ: আগে
; চেক-না: না
; চেক-ড্যাগ: পরে

এই ক্ষেত্রে ইনপুট স্ট্রিং প্রত্যাখ্যান করবে যেখানে আগে পরে ঘটে পরে.

ক্যাপচার করা ভেরিয়েবল সহ, চেক-ড্যাগ: একটি DAG-এর বৈধ টপোলজিক্যাল অর্ডারের সাথে মেলে
একটি ভেরিয়েবলের সংজ্ঞা থেকে এর ব্যবহার পর্যন্ত প্রান্ত সহ। এটা দরকারী, যেমন, যখন আপনার
পরীক্ষার ক্ষেত্রে নির্দেশের সময়সূচী থেকে বিভিন্ন আউটপুট অনুক্রমের সাথে মেলে। জন্য
উদাহরণ,

; চেক-ড্যাগ: যোগ করুন [[REG1:r[0-9]+]], r1, r2
; চেক-ড্যাগ: যোগ করুন [[REG2:r[0-9]+]], r3, r4
; চেক করুন: mul r5, [[REG1]], [[REG2]]

এ ক্ষেত্রে ওই দুটির যেকোনো আদেশ যোগ নির্দেশাবলী অনুমোদিত হবে।

আপনি যদি সংজ্ঞায়িত করা হয় এবং একই ভেরিয়েবল ব্যবহার করে চেক-ড্যাগ: ব্লক, সচেতন থাকুন যে
সংজ্ঞা নিয়ম মিলতে পারে পরে এর ব্যবহার

সুতরাং, উদাহরণস্বরূপ, নীচের কোডটি পাস হবে:

; চেক-ডিএজি: vmov.32 [[REG2:d[0-9]+]][0]
; চেক-ড্যাগ: vmov.32 [[REG2]][1]
vmov.32 d0[1]
vmov.32 d0[0]

যদিও এই অন্য কোড, হবে না:

; চেক-ডিএজি: vmov.32 [[REG2:d[0-9]+]][0]
; চেক-ড্যাগ: vmov.32 [[REG2]][1]
vmov.32 d1[1]
vmov.32 d0[0]

যদিও এটি খুব দরকারী হতে পারে, এটি বিপজ্জনকও, কারণ নিবন্ধনের ক্ষেত্রে
ক্রম, আপনার অবশ্যই একটি শক্তিশালী অর্ডার থাকতে হবে (লেখার আগে পড়ুন, ব্যবহারের আগে অনুলিপি করুন, ইত্যাদি)। যদি
আপনার পরীক্ষা যে সংজ্ঞাটি খুঁজছেন তা মেলে না (কম্পাইলারে একটি বাগ থাকার কারণে), এটি
ব্যবহার থেকে আরও দূরে মেলে, এবং বাস্তব বাগ মাস্ক দূরে.

এই ক্ষেত্রে, আদেশ কার্যকর করতে, DAG-ব্লকগুলির মধ্যে একটি নন-ডিএজি নির্দেশিকা ব্যবহার করুন৷

সার্জারির চেক-লেবেল: নির্দেশ
কখনও কখনও লজিক্যাল ব্লকে বিভক্ত একাধিক পরীক্ষা সমন্বিত ফাইলে, এক বা একাধিক
চেক করুন: নির্দেশাবলী অজান্তেই পরবর্তী ব্লকে লাইন মেলানোর মাধ্যমে সফল হতে পারে। যখন একটি
ত্রুটি সাধারণত শেষ পর্যন্ত উত্পন্ন হবে, ত্রুটির কারণ হিসাবে চেক পতাকাঙ্কিত নাও হতে পারে
আসলে সমস্যার প্রকৃত উৎসের সাথে কোনো সম্পর্ক বহন করে।

এই ক্ষেত্রে আরও ভাল ত্রুটি বার্তা তৈরি করার জন্য, "চেক-লেবেল:"নির্দেশ দিতে পারেন
ব্যবহার করা. এটি একটি স্বাভাবিক হিসাবে অভিন্নভাবে চিকিত্সা করা হয় চেক যে FileCheck করে ছাড়া নির্দেশিকা
একটি অতিরিক্ত অনুমান যে নির্দেশ দ্বারা মিলিত একটি লাইন এছাড়াও দ্বারা মিলিত হতে পারে না
অন্য কোনো চেক ইন উপস্থিত ম্যাচ-ফাইলের নাম; এটি লাইনের জন্য ব্যবহার করার উদ্দেশ্যে করা হয়েছে
লেবেল বা অন্যান্য অনন্য শনাক্তকারী রয়েছে। ধারণাগতভাবে, এর উপস্থিতি চেক-লেবেল
ইনপুট স্ট্রীমকে পৃথক ব্লকে ভাগ করে, যার প্রতিটি স্বাধীনভাবে প্রক্রিয়া করা হয়,
প্রতিরোধ a চেক করুন: একটি ব্লকের নির্দেশ অন্য ব্লকের একটি লাইনের সাথে মিলে যায়। উদাহরণ স্বরূপ,

সংজ্ঞায়িত করুন %struct.C* @C_ctor_base(%struct.C* %this, i32 %x) {
প্রবেশ:
; চেক-লেবেল: C_ctor_base:
; চেক করুন: mov [[সংরক্ষণ করুন:r[0-9]+]], r0
; চেক করুন: bl A_ctor_base
; চেক করুন: mov r0, [[সংরক্ষণ করুন]]
%0 = bitcast %struct.C* %this to %struct.A*
%কল = টেল কল %struct.A* @A_ctor_base(%struct.A* %0)
%1 = bitcast %struct.C* %this to %struct.B*
%call2 = টেল কল %struct.B* @B_ctor_base(%struct.B* %1, i32 %x)
ret %struct.C* %এই
}

সংজ্ঞায়িত করুন %struct.D* @D_ctor_base(%struct.D* %this, i32 %x) {
প্রবেশ:
; চেক-লেবেল: D_ctor_base:

এর ব্যবহার চেক-লেবেল: এ ক্ষেত্রে নির্দেশনা নিশ্চিত করে যে তিনটি চেক করুন: নির্দেশনা
শুধুমাত্র শরীরের সাথে সংশ্লিষ্ট লাইন গ্রহণ করুন @সি_ক্টর_বেস ফাংশন, এমনকি যদি
প্যাটার্নগুলি ফাইলে পরে পাওয়া লাইনের সাথে মেলে। তদুপরি, যদি এই তিনটির একটি চেক করুন:
নির্দেশাবলী ব্যর্থ হয়েছে, ফাইলচেক পরবর্তী ব্লকে চালিয়ে যাওয়ার মাধ্যমে পুনরুদ্ধার করবে, একাধিককে অনুমতি দেবে
পরীক্ষা ব্যর্থতা একটি একক আহ্বান সনাক্ত করা হবে.

যে প্রয়োজন নেই চেক-লেবেল: নির্দেশাবলীর সাথে সঙ্গতিপূর্ণ স্ট্রিং রয়েছে
একটি উৎস বা আউটপুট ভাষায় প্রকৃত সিনট্যাকটিক লেবেল: তাদের অবশ্যই একটি অনন্যভাবে মিলতে হবে
ফাইলের একক লাইন যাচাই করা হচ্ছে।

চেক-লেবেল: নির্দেশাবলী পরিবর্তনশীল সংজ্ঞা বা ব্যবহার ধারণ করতে পারে না।

ফাইলচেক প্যাটার্ন সমন্বয় বাক্য গঠন
দ্য "চেক করুন:" এবং "চেক-না:" নির্দেশিকা উভয়ই মিলে যাওয়ার জন্য একটি প্যাটার্ন নেয়৷ বেশিরভাগ ব্যবহারের জন্য৷
FileCheck, ফিক্সড স্ট্রিং ম্যাচিং পুরোপুরি যথেষ্ট। কিছু জিনিস জন্য, একটি আরো
মিলের নমনীয় ফর্ম পছন্দসই. এটি সমর্থন করার জন্য, FileCheck আপনাকে নির্দিষ্ট করার অনুমতি দেয়
ডবল ধনুর্বন্ধনী দ্বারা বেষ্টিত মিলিত স্ট্রিংগুলিতে নিয়মিত অভিব্যক্তি: {{yourregex}}.
যেহেতু আমরা যা করি তার বেশিরভাগের জন্য আমরা ফিক্সড স্ট্রিং ম্যাচিং ব্যবহার করতে চাই, ফাইলচেক আছে
রেগুলারের সাথে মিক্সিং এবং ফিক্সড স্ট্রিং ম্যাচিংকে সমর্থন করার জন্য ডিজাইন করা হয়েছে
অভিব্যক্তি এটি আপনাকে এই মত জিনিস লিখতে অনুমতি দেয়:

; চেক করুন: movhpd {{[0-9]+}}(%esp), {{%xmm[0-7]}}

এই ক্ষেত্রে, ESP রেজিস্টার থেকে যেকোনো অফসেট অনুমোদিত হবে, এবং যেকোনো xmm রেজিস্টার হবে
অনুমতি দেওয়া

যেহেতু রেগুলার এক্সপ্রেশনগুলি ডবল ব্রেস দিয়ে আবদ্ধ থাকে, সেগুলি দৃশ্যত স্বতন্ত্র,
এবং আপনাকে ডবল ব্রেসের মধ্যে এস্কেপ অক্ষর ব্যবহার করতে হবে না যেমন আপনি C-তে করবেন।
বিরল ক্ষেত্রে যে আপনি ইনপুট থেকে স্পষ্টভাবে ডবল ধনুর্বন্ধনী মেলাতে চান, আপনি করতে পারেন
কুৎসিত মত কিছু ব্যবহার {{[{][{]}} আপনার প্যাটার্ন হিসাবে।

ফাইলচেক ভেরিয়েবল
এটি একটি প্যাটার্নের সাথে মেলে এবং তারপরে এটি পরে আবার ঘটে কিনা তা যাচাই করা প্রায়ই দরকারী
ফাইল কোডজেন পরীক্ষার জন্য, এটি যেকোন রেজিস্টারের অনুমতি দেওয়ার জন্য কার্যকর হতে পারে, তবে তা যাচাই করুন
রেজিস্টার পরবর্তীতে ধারাবাহিকভাবে ব্যবহার করা হয়। এটা করতে, ফাইলচেক নামের ভেরিয়েবল হতে দেয়
সংজ্ঞায়িত এবং নিদর্শন মধ্যে প্রতিস্থাপিত. এখানে একটি সহজ উদাহরণ:

; পরীক্ষা করুন: পরীক্ষা5:
; চেক করুন: এখনই [[নিবন্ধন করুন:%[az]+]]
; চেক করুন: andw {{.*}}[[রেজিস্টার]]

প্রথম চেক লাইন একটি regex মেলে %[az]+ এবং এটি পরিবর্তনশীল মধ্যে ক্যাপচার রেজিস্ট্রেশন.
দ্বিতীয় লাইনে যা আছে তা যাচাই করে রেজিস্ট্রেশন একটি পরে ফাইল পরে ঘটে
"এবং W". ফাইলচেক পরিবর্তনশীল রেফারেন্স সবসময় অন্তর্ভুক্ত করা হয় [[ ]] জোড়া, এবং তাদের
regex দিয়ে নাম তৈরি করা যায় [a-zA-Z][a-zA-Z0-9]*. যদি একটি কোলন নাম অনুসরণ করে,
তাহলে এটি পরিবর্তনশীলের একটি সংজ্ঞা; অন্যথায়, এটি একটি ব্যবহার.

ফাইলচেক ভেরিয়েবল একাধিকবার সংজ্ঞায়িত করা যেতে পারে, এবং ব্যবহারগুলি সর্বদা সর্বশেষ মান পায়।
ভেরিয়েবলগুলিও পরবর্তীতে একই লাইনে ব্যবহার করা যেতে পারে যা তারা সংজ্ঞায়িত করা হয়েছিল। উদাহরণ স্বরূপ:

; চেক করুন: op [[REG:r[0-9]+]], [[REG]]

আপনি যদি operands চান দরকারী হতে পারে op একই নিবন্ধন হতে, এবং যত্ন না
এটা ঠিক কোন নিবন্ধন.

ফাইলচেক এক্সপ্রেশন
কখনও কখনও আউটপুট যাচাই করার প্রয়োজন হয় যা ম্যাচ ফাইলের লাইন নম্বর উল্লেখ করে,
যেমন কম্পাইলার ডায়াগনস্টিক পরীক্ষা করার সময়। এটি ম্যাচের একটি নির্দিষ্ট ভঙ্গুরতার পরিচয় দেয়
ফাইল গঠন, হিসাবে "চেক করুন:" লাইনে একই ফাইলে পরম লাইন সংখ্যা থাকে, যা
পাঠ্য সংযোজন বা মুছে ফেলার কারণে যখনই লাইন নম্বর পরিবর্তন হয় তখনই আপডেট করতে হবে।

এই ক্ষেত্রে সমর্থন করার জন্য, FileCheck ব্যবহার করার অনুমতি দেয় [[@LINE]], [[@LINE+ ]],
[[@লাইন- ]] প্যাটার্নে অভিব্যক্তি। এই অভিব্যক্তি একটি সংখ্যা প্রসারিত
লাইন যেখানে একটি প্যাটার্ন অবস্থিত (একটি ঐচ্ছিক পূর্ণসংখ্যা অফসেট সহ)।

এইভাবে ম্যাচ প্যাটার্নগুলি প্রাসঙ্গিক পরীক্ষা লাইনের কাছাকাছি রাখা যেতে পারে এবং আপেক্ষিক লাইন অন্তর্ভুক্ত করতে পারে
সংখ্যা উল্লেখ, উদাহরণস্বরূপ:

// চেক করুন: test.cpp:[[@LINE+4]]:6: ত্রুটি: প্রত্যাশিত ';' শীর্ষ স্তরের ঘোষণাকারীর পরে
// চেক-নেক্সট: {{^int a}}
// চেক-পরবর্তী: {{^ \^}}
// চেক-নেক্সট: {{^ ;}}
int a

onworks.net পরিষেবা ব্যবহার করে অনলাইনে FileCheck-3.6 ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

  • 1
    Eclipse Tomcat প্লাগইন
    Eclipse Tomcat প্লাগইন
    Eclipse Tomcat প্লাগইন প্রদান করে
    একটি টমক্যাট সার্লেটের সহজ ইন্টিগ্রেশন
    জাভা বিকাশের জন্য ধারক
    ওয়েব অ্যাপ্লিকেশন। আপনি জন্য আমাদের সাথে যোগ দিতে পারেন
    আলোচনা...
    Eclipse Tomcat প্লাগইন ডাউনলোড করুন
  • 2
    ওয়েব টরেন্ট ডেস্কটপ
    ওয়েব টরেন্ট ডেস্কটপ
    ওয়েবটরেন্ট ডেস্কটপ স্ট্রিমিংয়ের জন্য
    ম্যাক, উইন্ডোজ বা লিনাক্সে টরেন্ট। এটা
    BitTorrent এবং উভয়ের সাথে সংযোগ করে
    WebTorrent সহকর্মীরা। এখন নেই
    অপেক্ষা করতে হবে...
    ওয়েবটরেন্ট ডেস্কটপ ডাউনলোড করুন
  • 3
    জেনএক্স
    জেনএক্স
    GenX পরিমার্জিত করার জন্য একটি বৈজ্ঞানিক প্রোগ্রাম
    এক্স-রে রিফেলসিটিভিটি, নিউট্রন
    প্রতিফলন এবং পৃষ্ঠের এক্স-রে
    ডিফার্যাকশন ডেটা ডিফারেনশিয়াল ব্যবহার করে
    বিবর্তন অ্যালগরিদম...
    GenX ডাউনলোড করুন
  • 4
    pspp4 উইন্ডোজ
    pspp4 উইন্ডোজ
    PSPP হল পরিসংখ্যান সংক্রান্ত একটি প্রোগ্রাম
    নমুনা তথ্য বিশ্লেষণ। এটি একটি বিনামূল্যে
    মালিকানা প্রোগ্রামের জন্য প্রতিস্থাপন
    এসপিএসএস। PSPP-তে পাঠ্য-ভিত্তিক এবং উভয়ই রয়েছে
    গ্রাফিক্যাল আমাদের...
    pspp4windows ডাউনলোড করুন
  • 5
    গিট এক্সটেনশন
    গিট এক্সটেনশন
    গিট এক্সটেনশন হল একটি স্বতন্ত্র UI টুল
    গিট সংগ্রহস্থল পরিচালনার জন্য। এটাও
    উইন্ডোজ এক্সপ্লোরারের সাথে সংহত করে এবং
    মাইক্রোসফ্ট ভিসুয়াল স্টু
    (2015/2017/2019)। ম...
    গিট এক্সটেনশন ডাউনলোড করুন
  • 6
    ইস্পেক: বক্তৃতা সংশ্লেষ
    ইস্পেক: বক্তৃতা সংশ্লেষ
    ইংরেজির জন্য টেক্সট টু স্পিচ ইঞ্জিন এবং
    অন্যান্য অনেক ভাষা। সঙ্গে কম্প্যাক্ট আকার
    স্পষ্ট কিন্তু কৃত্রিম উচ্চারণ।
    এর সাথে একটি কমান্ড-লাইন প্রোগ্রাম হিসাবে উপলব্ধ
    অনেক...
    eSpeak ডাউনলোড করুন: বক্তৃতা সংশ্লেষণ
  • আরও »

লিনাক্স কমান্ডগুলি

Ad