انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

gvpr - آنلاین در ابر

gvpr را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور gvpr است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


gvpr - زبان پردازش و اسکن الگوی نمودار

خلاصه


gvpr [-icnqV؟] [ -o مجموعه ] [ -a قوس ] [ "پروگ" | -f پروفایل ] [ فایل ها ]

شرح


gvpr (که قبلا به عنوان شناخته شده gpr) یک ویرایشگر جریان نمودار است که از آن الهام گرفته شده است بیدار. ورودی را کپی می کند
نمودارها را به خروجی آن، احتمالاً تغییر ساختار و ویژگی های آنها، ایجاد جدید
نمودارها یا چاپ اطلاعات دلخواه مدل نموداری ارائه شده توسط
libcgraph(3). به خصوص، gvpr با استفاده از زبان نقطه، نمودارها را می خواند و می نویسد.

اساسا، gvpr هر گراف ورودی را که با نشان داده شده است عبور می دهد $G، بازدید از هر گره و لبه،
تطبیق آن با قوانین عمل محمول ارائه شده در برنامه ورودی. قوانین هستند
به ترتیب ارزیابی شد برای هر گزاره ای که به درستی ارزیابی می شود، عمل مربوطه است
انجام. در طول پیمایش، گره یا لبه فعلی که بازدید می شود با نشان داده می شود $.

برای هر نمودار ورودی، یک زیرگراف هدف وجود دارد که با نشان داده می شود $T، ابتدا خالی و استفاده می شود
برای جمع آوری موجودیت های انتخاب شده و یک نمودار خروجی، $O، برای پردازش نهایی استفاده می شود و سپس
روی خروجی نوشته شده است به طور پیش فرض، نمودار خروجی، نمودار هدف است. نمودار خروجی
را می توان در برنامه یا به معنای محدود در خط فرمان تنظیم کرد.

OPTIONS


گزینه های زیر پشتیبانی می شوند:

-a قوس
رشته قوس به توکن های جدا شده با فضای خالی، با فرد تقسیم می شود
توکن های موجود به عنوان رشته در gvpr برنامه به عنوان ARGV[0]،...،ARGV[ARGC-1].
کاراکترهای فضای خالی در زیر رشته‌های نقل‌قول‌شده تک یا دوگانه، یا قبل از a
به عنوان جداکننده نادیده گرفته می شوند. به طور کلی، یک کاراکتر بک اسلش خاموش می شود
هر معنای خاصی از کاراکتر زیر توجه داشته باشید که نشانه های مشتق شده از
چندگانه -a پرچم ها به هم چسبیده اند

-c از نمودار منبع به عنوان نمودار خروجی استفاده کنید.

-i پسوند زیرگراف ناشی از گره نمودار خروجی را در زمینه
نمودار ریشه آن

-o مجموعه
باعث می شود جریان خروجی در فایل مشخص شده نوشته شود. به طور پیش فرض، خروجی است
نوشته شده به stdout.

-f پروفایل
از محتویات فایل مشخص شده به عنوان برنامه برای اجرا در ورودی استفاده کنید. اگر
پروفایل شامل یک کاراکتر اسلش است، نام به عنوان نام مسیر فایل گرفته می شود.
در غیر این صورت، gvpr از دایرکتوری های مشخص شده در متغیر محیطی استفاده خواهد کرد
GVPRPATH برای جستجوی فایل اگر -f داده نمی شود، gvpr از اولین غیر استفاده خواهد کرد
آرگومان گزینه به عنوان برنامه

-q پیام های هشدار را خاموش می کند.

-n پیش خواندن نمودار را خاموش می کند. به طور پیش فرض، متغیر $NG به نمودار بعدی تنظیم می شود
پردازش شود. این امر نیاز به خواندن نمودار بعدی قبل از پردازش دارد
نمودار فعلی، که اگر نمودار بعدی فقط در پاسخ به ایجاد شود، ممکن است مسدود شود
برخی از اقدامات مربوط به پردازش نمودار فعلی.

-V باعث می شود برنامه اطلاعات نسخه را چاپ کند و از آن خارج شود.

-? باعث می شود برنامه اطلاعات استفاده را چاپ کند و از آن خارج شود.

عملگرها


عملوند زیر پشتیبانی می شود:

فایل ها نام فایل های حاوی 1 یا چند نمودار به زبان نقطه. اگر نه -f انتخاب
داده می شود، نام اول از لیست حذف شده و به عنوان برنامه ورودی استفاده می شود.
اگر لیست فایل ها خالی است، stdin استفاده خواهد شد.

برنامه ها


A gvpr برنامه شامل فهرستی از بندهای عمل محمول است که یکی از اشکال زیر را دارد:

شروع { اقدام }

BEG_G { اقدام }

N [ گزاره ] { اقدام }

E [ گزاره ] { اقدام }

END_G { اقدام }

END { اقدام }

یک برنامه حداکثر می تواند حاوی یکی از هر یک از برنامه ها باشد شروع, END_G و END بندها وجود دارد
هر تعداد باشد BEG_G, N و E عبارات، اولی برای نمودارها، دومی برای
گره ها، سومین به لبه ها. این ها به بلوک ها، بلوک هایی متشکل از یک تقسیم می شوند
اختیاری BEG_G بیانیه و همه N و E اظهارات تا بعدی BEG_G بیانیه، اگر
هر معناشناسی سطح بالای الف gvpr برنامه عبارتند از:

ارزیابی کنید شروع بند، در صورت وجود
برای هر نمودار ورودی G {
برای هر بلوک {
تنظیم G به عنوان نمودار فعلی و شی فعلی.
ارزیابی کنید BEG_G بند، در صورت وجود
برای هر گره و لبه در G {
گره یا لبه را به عنوان شی فعلی تنظیم کنید.
ارزیابی کنید N or E بندها در صورت لزوم
}
}
تنظیم G به عنوان شی فعلی
ارزیابی کنید END_G بند، در صورت وجود
}
ارزیابی کنید END بند، در صورت وجود

اقدامات از شروع, BEG_G, END_G و END بندها زمانی انجام می شوند که بندها هستند
ارزیابی شد. برای N or E بند، ممکن است محمول یا عمل حذف شود. اگر آنجا
هیچ محمولی با یک عمل وجود ندارد، عمل در هر گره یا لبه انجام می شود، به عنوان
مناسب. اگر عملی وجود نداشته باشد و محمول به درستی ارزیابی شود، مربوط است
گره یا لبه به گراف هدف اضافه می شود.

بلوک ها به ترتیبی که به وجود می آیند ارزیابی می شوند. در یک بلوک، N بند
(E بندها، به ترتیب) به ترتیبی که اتفاق می افتد ارزیابی می شوند. با این حال توجه داشته باشید،
که در یک بلوک، N or E بسته به ترتیب پیمایش ممکن است بندها در هم آمیخته شوند.

محمول ها و اعمال دنباله ای از گزاره ها در گویش C هستند که توسط the پشتیبانی می شوند
صادرات(3) کتابخانه تنها تفاوت محمول و افعال این است که اولی
باید نوعی داشته باشد که ممکن است درست یا نادرست تفسیر شود. در اینجا C معمولی
قراردادی دنبال می شود که در آن مقدار غیر صفر درست در نظر گرفته می شود. این شامل
رشته های غیر خالی و ارجاعات غیر خالی به گره ها، لبه ها و غیره. با این حال، اگر یک رشته می تواند
به یک عدد صحیح تبدیل شود، از این مقدار استفاده می شود.

علاوه بر انواع پایه های معمول C (از درجه اعتبار ساقط, INT, ارابه, شناور, طولانی, بدون امضا و دو برابر),
gvpr فراهم می کند رشته به عنوان مترادف برای کاراکتر*و انواع مبتنی بر نمودار node_t, edge_t,
graph_t و obj_t. obj_t نوع را می توان به عنوان ابرنوع از 3 بتن دیگر مشاهده کرد
انواع نوع پایه صحیح به صورت پویا حفظ می شود. علاوه بر این انواع پایه،
فقط سایر عبارات نوع پشتیبانی شده آرایه های (تداعی کننده) هستند.

ثابت ها از نحو C پیروی می کنند، اما رشته ها ممکن است با هر کدام نقل قول شوند "..." or '...'. gvpr
نظرات C++ و همچنین نظرات نوع cpp را می پذیرد. برای دومی، اگر خطی با
یک کاراکتر '#'، بقیه خط نادیده گرفته می شود.

یک دستور می تواند اعلان یک تابع، یک متغیر یا یک آرایه یا یک فایل اجرایی باشد
بیانیه. برای اعلامیه ها، یک محدوده واحد وجود دارد. اعلان های آرایه به شکل زیر است:

نوع صف [ type0 ]

جایی که type0 اختیاری است اگر عرضه شود، تجزیه کننده تمام آرایه را اجرا می کند
زیرنویس ها نوع مشخص شده را دارند. اگر عرضه نشود، همه نوع اشیاء می توانند باشند
به عنوان زیرنویس استفاده می شود. مانند C، متغیرها و آرایه ها باید اعلام شوند. به طور خاص، یک
متغیر اعلام نشده به عنوان نام یک ویژگی یک گره، لبه یا
نمودار، بسته به زمینه

دستورات اجرایی می تواند یکی از موارد زیر باشد:

{ [ بیانیه ... ] }
بیان // معمولا VAR = بیان
اگر ( بیان ) بیانیه [ دیگر بیانیه ]
برای( بیان ; بیان ; بیان ) بیانیه
برای( صف [ VAR ]) بیانیه
برای ( صف [ VAR ]) بیانیه
در حالی که ( بیان ) بیانیه
سوئیچ ( بیان ) مورد اظهارات
شکستن [ بیان ]
ادامه دادن [ بیان ]
برگشت [ بیان ]
موارد داخل پرانتز اختیاری هستند.

در شکل دوم از برای بیانیه و برای بیانیه، متغیر VAR تنظیم شده است
هر مقدار به عنوان یک شاخص در آرایه مشخص شده و سپس مربوطه استفاده می شود بیانیه is
ارزیابی شد. برای شاخص های عددی و رشته ای، شاخص ها به صورت افزایشی برگردانده می شوند
(کاهش) ترتیب عددی یا واژگانی برای برای (برای، به ترتیب). از این می توان استفاده کرد
برای مرتب سازی

تعاریف تابع فقط می توانند در شروع بند

عبارات شامل عبارات معمول C هستند. مقایسه رشته ها با استفاده از == و != درمان
عملوند دست راست به عنوان الگویی برای تطبیق عبارت منظم. الگوها
استفاده کنید ksh(1) نحو الگوی مطابقت فایل. (برای برابری رشته ساده، از عبارت استفاده کنید strcmp
تابع.

gvpr سعی خواهد کرد تا در صورت لزوم از یک عبارت به عنوان رشته یا مقدار عددی استفاده کند. هر دو
قالب‌های تابع و قالب‌های شبیه C باعث می‌شوند تا در صورت امکان تبدیل‌ها انجام شود.

عبارات از نوع گرافیکی (به عنوان مثال، graph_t، node_t، edge_t، obj_t) ممکن است با الف دنبال شود
مرجع میدانی در قالب .نام. مقدار حاصل مقدار مشخصه است
تحت عنوان نام از شی داده شده علاوه بر این، در زمینه های خاص، اعلام نشده،
شناسه اصلاح نشده به عنوان یک نام ویژگی در نظر گرفته می شود. به طور خاص، چنین شناسه هایی
به ترتیب ویژگی های گره یا لبه فعلی را در نشان می دهد N و E بندها و
نمودار فعلی در BEG_G و END_G بندها

طبق معمول در libcgraph(3) مدل، ویژگی ها دارای ارزش رشته ای هستند. علاوه بر این، gvpr
از ویژگی های شبه خاصی از اشیاء گراف پشتیبانی می کند، که لزوماً دارای ارزش رشته ای نیستند. اینها
منعکس کننده خصوصیات ذاتی اشیاء گراف است و توسط کاربر قابل تنظیم نیست.

سر : node_t
سر یک لبه

دم : node_t
دم یک لبه

نام : رشته
نام یک یال، گره یا گراف. نام یک لبه به شکل "<دم-
نام>[]"، جایی که است "->"یا"--" وابسته به
گراف جهت دار باشد یا خیر. قسمت براکت [] فقط در صورتی ظاهر می شود که
لبه یک کلید غیر ضروری دارد.

درجه : INT
درجه یک گره

درجه بالاتر : INT
درجه بیرونی یک گره

درجه : INT
درجه یک گره

ریشه : graph_t
نمودار ریشه یک شی ریشه یک گراف ریشه خودش است.

پدر یا مادر : graph_t
نمودار والد یک زیرگراف والد یک گراف ریشه است NULL

n_لبه ها : INT
تعداد یال های نمودار

n_nodes : INT
تعداد گره ها در نمودار

جهت دار : INT
درست (غیر صفر) اگر نمودار جهت دار باشد

سخت : INT
درست (غیر صفر) اگر نمودار سخت باشد

توکار توابع


توابع زیر تعبیه شده است gvpr. این توابع ارجاعات را به گراف برمی گرداند
اشیاء برمی گردند NULL در صورت شکست

نمودار ها و زیرنویس
گراف(s : رشته, t : رشته): graph_t
یک نمودار ایجاد می کند که نام آن است s و نوع آن با رشته مشخص می شود t.
نادیده گرفتن مورد، شخصیت ها U, D, S, N تفسیر را بدون جهت داشته باشید،
به ترتیب جهت دار، سختگیرانه و غیر سختگیرانه. اگر t خالی است، جهت دار، غیر
نمودار دقیق تولید می شود.

زیرگروه(g : graph_t, s : رشته): graph_t
یک زیرگراف در گراف ایجاد می کند g با نام s. اگر زیرگراف از قبل وجود داشته باشد، وجود دارد
برگشت

isSubg(g : graph_t, s : رشته): graph_t
زیرگراف را در گراف برمی گرداند g با نام s، اگر وجود داشته باشد، یا NULL در غیر این صورت.

fstsubg(g : graph_t): graph_t
اولین زیرگراف در گراف را برمی گرداند g، یا NULL اگر هیچ کدام وجود نداشته باشد

nxtsubg(sg : graph_t): graph_t
زیرگراف بعدی را بعد از آن برمی گرداند sg، یا NULL.

isDirect(g : graph_t): INT
اگر و فقط اگر درست را برمی گرداند g کارگردانی شده است

سخت است(g : graph_t): INT
اگر و فقط اگر درست را برمی گرداند g سختگیر است

n گره ها(g : graph_t): INT
تعداد گره های موجود را برمی گرداند g.

لبه ها(g : graph_t): INT
تعداد لبه های داخل را برمی گرداند g.

گره ها
گره(sg : graph_t, s : رشته): node_t
یک گره در گراف ایجاد می کند g از نام s. اگر چنین گره ای از قبل وجود داشته باشد، برگردانده می شود.

زیرگره(sg : graph_t, n : node_t): node_t
گره را وارد می کند n به زیرگراف g. گره را برمی گرداند.

fstnode(g : graph_t): node_t
اولین گره در گراف را برمی گرداند g، یا NULL اگر هیچ کدام وجود نداشته باشد

nxtnode(n : node_t): node_t
بعد از آن گره بعدی را برمی گرداند n در نمودار ریشه یا NULL.

nxtnode_sg(sg : graph_t, n : node_t): node_t
بعد از آن گره بعدی را برمی گرداند n in sg، یا NULL.

isNode(sg : graph_t, s : رشته): node_t
به دنبال یک گره در (زیر) گراف می گردد sg از نام s. اگر چنین گره ای وجود داشته باشد، برگردانده می شود.
در غیر این صورت، NULL برگردانده شده است.

زیرگره است(sg : graph_t, n : node_t): INT
اگر گره غیر صفر را برمی گرداند n در نمودار (زیر) است sg، یا در غیر این صورت صفر است.

درجه از(sg : graph_t, n : node_t): INT
درجه گره را برمی گرداند n در (زیر) نمودار sg.

فوق درجه از(sg : graph_t, n : node_t): INT
درجه خارج گره را برمی گرداند n در (زیر) نمودار sg.

درجه از(sg : graph_t, n : node_t): INT
درجه گره را برمی گرداند n در (زیر) نمودار sg.

لبه ها
لبه(t : node_t, h : node_t, s : رشته): edge_t
یک لبه با گره دم ایجاد می کند t، گره سر h و نام s در نمودار ریشه اگر
گراف بدون جهت است، تمایز بین گره های سر و دم بی اهمیت است.
اگر چنین لبه ای از قبل وجود داشته باشد، برگردانده می شود.

edge_sg(sg : graph_t, t : node_t, h : node_t, s : رشته): edge_t
یک لبه با گره دم ایجاد می کند t، گره سر h و نام s در (زیر) نمودار sg (و همه
نمودارهای والد). اگر نمودار بدون جهت باشد، تمایز بین سر و دم است
گره ها بی اهمیت هستند. اگر چنین لبه ای از قبل وجود داشته باشد، برگردانده می شود.

زیر لبه(g : graph_t, e : edge_t): edge_t
لبه را وارد می کند e به زیرگراف g. لبه را برمی گرداند.

isEdge(t : node_t, h : node_t, s : رشته): edge_t
به دنبال لبه ای با گره دم است t، گره سر h و نام s. اگر نمودار باشد
بدون جهت، تمایز بین گره های سر و دم بی اهمیت است. اگر چنین
لبه وجود دارد، برگردانده می شود. در غیر این صورت، NULL برگردانده شده است.

isEdge_sg(sg : graph_t, t : node_t, h : node_t, s : رشته): edge_t
به دنبال لبه ای با گره دم است t، گره سر h و نام s در (زیر) نمودار sg. اگر
گراف بدون جهت است، تمایز بین گره های سر و دم بی اهمیت است.
اگر چنین لبه ای وجود داشته باشد، برگردانده می شود. در غیر این صورت، NULL برگردانده شده است.

isSubedge است(g : graph_t, e : edge_t): INT
اگر لبه غیر صفر باشد e در نمودار (زیر) است sg، یا در غیر این صورت صفر است.

fstout(n : node_t): edge_t
اولین لبه گره را برمی گرداند n در نمودار ریشه

fstout_sg(sg : graph_t, n : node_t): edge_t
اولین لبه گره را برمی گرداند n در (زیر) نمودار sg.

nxtout(e : edge_t): edge_t
خروجی بعدی را بعد از آن برمی گرداند e در نمودار ریشه

nxtout_sg(sg : graph_t, e : edge_t): edge_t
خروجی بعدی را بعد از آن برمی گرداند e در نمودار sg.

fstin(n : node_t): edge_t
اولین لبه گره را برمی گرداند n در نمودار ریشه

fstin_sg(sg : graph_t, n : node_t): edge_t
اولین لبه گره را برمی گرداند n در نمودار sg.

nxtin(e : edge_t): edge_t
inedge بعدی را بعد از آن برمی گرداند e در نمودار ریشه

nxtin_sg(sg : graph_t, e : edge_t): edge_t
inedge بعدی را بعد از آن برمی گرداند e در نمودار sg.

fstedge(n : node_t): edge_t
اولین لبه گره را برمی گرداند n در نمودار ریشه

fstedge_sg(sg : graph_t, n : node_t): edge_t
اولین لبه گره را برمی گرداند n در نمودار sg.

nxtedge(e : edge_t, node_t): edge_t
لبه بعدی را بعد از آن برمی گرداند e در نمودار ریشه

nxtedge_sg(sg : graph_t, e : edge_t, node_t): edge_t
لبه بعدی را بعد از آن برمی گرداند e در نمودار sg.

روبروی(e : edge_t, node_t): node_t
گره روی لبه را برمی گرداند e برابر نیست با n. اگر NULL را برمی‌گرداند n یک گره از
e. این می تواند هنگام استفاده مفید باشد fstedge و nxtedge برای برشمردن همسایگان
n.

گراف I / O
نوشتن(g : graph_t): از درجه اعتبار ساقط
چاپ g در فرمت نقطه ای بر روی جریان خروجی.

نوشتن G(g : graph_t, شهرت : رشته): از درجه اعتبار ساقط
چاپ g با فرمت نقطه در فایل شهرت.

fwriteG(g : graph_t, fd : INT): از درجه اعتبار ساقط
چاپ g در قالب نقطه بر روی جریان باز که با عدد صحیح نشان داده شده است fd.

readG(شهرت : رشته): graph_t
یک نمودار خوانده شده از فایل را برمی گرداند شهرت. نمودار باید به صورت نقطه ای باشد. اگر نه
نمودار قابل خواندن است، NULL برگردانده شده است.

freadG(fd : INT): graph_t
نمودار بعدی خوانده شده از جریان باز را برمی گرداند fd. برمی گرداند NULL در انتهای فایل

گراف متفرقه
حذف کردن(g : graph_t, x : obj_t): از درجه اعتبار ساقط
شی را حذف می کند x از نمودار g. اگر g is NULL، تابع از نمودار ریشه استفاده می کند
x. اگر x یک گراف یا زیرگراف است، بسته است مگر اینکه x قفل شده است

هست در(g : graph_t, x : obj_t): INT
اگر درست باشد x در زیرگراف است g.

کلون جی(g : graph_t, s : رشته): graph_t
یک کلون از گراف ایجاد می کند g با نام s. اگر s "" است، نمودار ایجاد شده دارای این است
همان نام g.

کلون کردن(g : graph_t, x : obj_t): obj_t
یک کلون شی ایجاد می کند x در نمودار g. به طور خاص، شی جدید همان را دارد
ویژگی ها و ساختار نام/مقدار به عنوان شی اصلی. اگر یک شی با
همان کلید x در حال حاضر وجود دارد، ویژگی های آن با ویژگی های آن پوشانده می شود x و
شی برگردانده می شود. اگر لبه ای شبیه سازی شود، هر دو نقطه پایانی به طور ضمنی شبیه سازی می شوند.
اگر یک گراف کلون شود، تمام گره ها، لبه ها و زیرگراف ها به طور ضمنی کلون می شوند. اگر x
یک نمودار است، g شاید NULL، در این صورت شی کلون شده یک ریشه جدید خواهد بود
نمودار در این مورد، تماس معادل است cloneG(x"").

کپی کنید(g : graph_t, x : obj_t): obj_t
یک کپی از شی ایجاد می کند x در نمودار g، جایی که شی جدید همان نام/مقدار را دارد
به عنوان شی اصلی مشخص می شود. اگر یک شی با همان کلید به عنوان x قبلا
وجود دارد، ویژگی های آن با ویژگی های آن پوشانده می شود x و شی برگردانده می شود. توجه داشته باشید
که این یک کپی کم عمق است. اگر x یک گراف است، هیچ یک از گره ها، لبه ها یا زیرگراف های آن وجود ندارد
در نمودار جدید کپی می شوند. اگر x یک لبه است، نقاط انتهایی اگر ایجاد می شوند
لازم است، اما آنها شبیه سازی نمی شوند. اگر x یک نمودار است، g شاید NULL، که در این صورت
شی کلون شده یک گراف ریشه جدید خواهد بود.

کپی A(" : obj_t, tgt : obj_t): INT
ویژگی های شی را کپی می کند " اعتراض کردن tgt، رونویسی هر مقدار مشخصه
tgt ممکن است در ابتدا داشته باشد.

وادار کردن(g : graph_t): از درجه اعتبار ساقط
گسترش می یابد g به پسوند زیرگراف ناشی از گره در گراف ریشه آن.

hasAttr(" : obj_t, نام : رشته): INT
اگر شی غیر صفر باشد " دارای یک ویژگی است که نام آن است نام. 0 برمی گرداند
در غیر این صورت.

isAttr(g : graph_t, نوع : رشته, نام : رشته): INT
اگر یک ویژگی غیر صفر باشد نام در تعریف شده است g برای اشیاء از
داده نوع. برای گره ها، لبه ها و نمودارها، نوع باید "N"، "E" و "G" باشد،
به ترتیب. در غیر این صورت 0 را برمی گرداند.

سن(" : obj_t, نام : رشته): رشته
مقدار صفت را برمی گرداند نام در شیء ". این برای آن موارد مفید است
چه زمانی نام با یکی از کلمات کلیدی مانند "سر" یا "ریشه" در تضاد است. اگر
ویژگی در نمودار اعلام نشده است، تابع آن را با مقداردهی اولیه می کند
مقدار پیش فرض "". برای جلوگیری از این، باید از hasAttr or isAttr تابع
برای بررسی وجود ویژگی

دارایی(" : obj_t, نام : رشته, ارزش : رشته): INT
مقدار صفت را تعیین می کند نام در شیء " به ارزش. در صورت موفقیت 0 را برمی گرداند،
غیر صفر در شکست دیدن سن در بالا.

getDflt(g : graph_t, نوع : رشته, نام : رشته): رشته
مقدار پیش فرض ویژگی را برمی گرداند نام در اشیاء در g از داده شده نوع. برای
گره ها، لبه ها و نمودارها، نوع باید به ترتیب "N"، "E" و "G" باشد. اگر
ویژگی در نمودار اعلام نشده است، تابع آن را با مقداردهی اولیه می کند
مقدار پیش فرض "". برای جلوگیری از این، باید از isAttr عملکرد برای بررسی
که صفت وجود دارد.

setDflt(g : graph_t, نوع : رشته, نام : رشته, ارزش : رشته): INT
مقدار پیش فرض ویژگی را تنظیم می کند نام به ارزش در اشیاء در g از داده شده
نوع. برای گره ها، لبه ها و نمودارها، نوع باید به ترتیب "N"، "E" و "G" باشد.
در مورد موفقیت 0، در صورت شکست غیر صفر است. دیدن getDflt در بالا.

fstAttr(g : graph_t, نوع : رشته): رشته
نام اولین ویژگی اشیاء را برمی گرداند g از داده شده نوع. برای
گره ها، لبه ها و نمودارها، نوع باید به ترتیب "N"، "E" و "G" باشد. اگر آنجا
هیچ ویژگی وجود ندارد، رشته "" برگردانده می شود.

nxtAttr(g : graph_t, نوع : رشته, نام : رشته): رشته
نام ویژگی بعدی اشیاء را در آن برمی گرداند g از داده شده نوع بعد از
صفت نام. بحث و جدل نام باید نام یک ویژگی موجود باشد. آی تی
معمولاً مقدار بازگشتی تماس قبلی به خواهد بود fstAttr or nxtAttr. برای
گره ها، لبه ها و نمودارها، نوع باید به ترتیب "N"، "E" و "G" باشد. اگر آنجا
هیچ ویژگی باقی نمانده است، رشته "" برگردانده می شود.

compOf(g : graph_t, n : node_t): graph_t
جزء متصل گراف را برمی گرداند g حاوی گره n، به عنوان زیرگراف از
g. زیرگراف فقط شامل گره ها است. یکی می تواند استفاده کند وادار کردن برای اضافه کردن لبه ها را
عملکرد از کار می افتد و برمی گردد NULL if n در نیست g. اتصال بر اساس
زیرزمینی نمودار غیر جهت دار از g.

نوع(اعتراض : obj_t): رشته
نشانی از نوع را برمی گرداند اعتراض. برای گره ها، لبه ها و نمودارها، برمی گردد
به ترتیب "N"، "E" و "G".

قفل(g : graph_t, v : INT): INT
قفل کردن گراف را بر روی نمودارهای ریشه اجرا می کند. اگر عدد صحیح v مثبت است، نمودار است
تنظیم به طوری که تماس های آینده به حذف کردن هیچ اثر فوری ندارند اگر v صفر است،
گراف باز است اگر در زمانی که وجود داشت، تماسی برای حذف نمودار وجود داشته است
قفل شده است، نمودار بسته است. اگر v منفی است، هیچ کاری انجام نشده است. در همه موارد،
مقدار قفل قبلی برگردانده می شود.

رشته
دوی سرعت(fmt : رشته, ...): رشته
رشته حاصل از قالب بندی مقادیر عبارات را برمی گرداند
بعد از وقوع fmt با توجه به printf(3) قالب fmt

gsub(خ : رشته, اهسته دست زدن به : رشته): رشته

gsub(خ : رشته, اهسته دست زدن به : رشته, تکرار : رشته): رشته
بازده خ با تطابق همه زیر رشته ها اهسته دست زدن به حذف شده یا جایگزین شده است تکرار,
بود.

زیر(خ : رشته, اهسته دست زدن به : رشته): رشته

زیر(خ : رشته, اهسته دست زدن به : رشته, تکرار : رشته): رشته
بازده خ با تطابق زیر رشته سمت چپ اهسته دست زدن به حذف شده یا جایگزین شده است تکرار,
به ترتیب. کاراکترهای '^' و '$' ممکن است در ابتدا و انتها استفاده شوند.
به ترتیب از اهسته دست زدن به برای لنگر انداختن الگو به ابتدا یا انتهای آن خ.

بستر(خ : رشته, idx : INT): رشته

بستر(خ : رشته, idx : INT, لن : INT): رشته
رشته فرعی را برمی گرداند خ شروع در موقعیت idx تا انتهای رشته یا
طول لن، به ترتیب. نمایه سازی از 0 شروع می شود idx منفی است یا idx is
بزرگتر از طول خ، یک خطای کشنده رخ می دهد. به طور مشابه، در دوم
مورد، اگر لن منفی است یا idx + لن بزرگتر از طول است خ، کشنده است
خطا رخ می دهد

strcmp(s1 : رشته, s2 : رشته): INT
تابع استاندارد C را ارائه می دهد strcmp(3).

طول(s : رشته): INT
طول رشته را برمی گرداند s.

شاخص(s : رشته, t : رشته): INT

rindex(s : رشته, t : رشته): INT
شاخص کاراکتر را در رشته برمی گرداند s جایی که سمت چپ ترین (راست ترین) کپی است
از رشته t را می توان یافت، یا -1 اگر t زیر رشته ای از s.

همخوانی داشتن(s : رشته, p : رشته): INT
شاخص کاراکتر را در رشته برمی گرداند s جایی که سمت چپ ترین تطابق الگو
p را می توان یافت، یا -1 اگر زیررشته ای از s کبریت p.

تاپر(s : رشته): رشته
نسخه ای از s با تبدیل حروف الفبا به حروف بزرگ.

برای کاهش(s : رشته): رشته
نسخه ای از s با تبدیل حروف الفبا به حروف کوچک.

حکم(s : رشته): رشته
نسخه ای از s مناسب برای استفاده به عنوان یک شناسه در یک فایل نقطه.

اچ تی ام ال(g : graph_t, s : رشته): رشته
نسخه "جادویی" از s به عنوان یک رشته HTML این معمولاً مورد استفاده قرار خواهد گرفت
یک برچسب HTML مانند به یک شی گراف وصل کنید. توجه داشته باشید که رشته برگشتی در آن زندگی می کند
g. به ویژه، زمانی که آزاد می شود g بسته است و به عنوان یک رشته HTML عمل می کند،
باید با یک شی از استفاده شود g. علاوه بر این، توجه داشته باشید که براکت زاویه
نقل قول ها نباید بخشی از s. اینها اضافه خواهند شد اگر g با DOT بتن نوشته شده است
فرمت.

ishtml(s : رشته): INT
اگر و فقط اگر غیر صفر را برمی گرداند s یک رشته HTML است.

xOf(s : رشته): رشته
رشته را برمی گرداند "x"اگر s دارای فرم "x,y"، جایی که هر دو x و y عددی هستند.

شما از(s : رشته): رشته
رشته را برمی گرداند "y"اگر s دارای فرم "x,y"، جایی که هر دو x و y عددی هستند.

llOf(s : رشته): رشته
رشته را برمی گرداند "llx,lly"اگر s دارای فرم "llx,lly,urx,هیئت منصفه"، جایی که همه از llx,
lly, urxو هیئت منصفه عددی هستند.

urOf(s)
urOf(s : رشته): رشته رشته را برمی گرداند "urx,هیئت منصفه"اگر s فرم دارد
"llx,lly,urx,هیئت منصفه"، جایی که همه از llx, lly, urxو هیئت منصفه عددی هستند.

sscanf(s : رشته, fmt : رشته, ...): INT
رشته را اسکن می کند s، استخراج مقادیر با توجه به sscanf(3) قالب fmt.
مقادیر در آدرس های زیر ذخیره می شوند fmt، آدرس هایی که دارای فرم هستند &v,
جایی که v یک متغیر اعلام شده از نوع صحیح است. تعداد اقلام را برمی گرداند
با موفقیت اسکن شد

انشعاب(s : رشته, ورود : صف, seps : رشته): INT

انشعاب(s : رشته, ورود : صف): INT

نشانه(s : رشته, ورود : صف, seps : رشته): INT

نشانه(s : رشته, ورود : صف): INT
La انشعاب تابع رشته را می شکند s در زمینه ها، در حالی که نشانه تابع
رشته را به توکن می شکند. یک فیلد از همه کاراکترهای غیر جداکننده تشکیل شده است
بین دو کاراکتر جداکننده یا ابتدا یا انتهای رشته. بنابراین، الف
فیلد ممکن است رشته خالی باشد. یک توکن یک زیررشته حداکثر و غیر خالی است نه
حاوی یک کاراکتر جداکننده کاراکترهای جداکننده آنهایی هستند که در
seps بحث و جدل. اگر seps ارائه نشده است، مقدار پیش فرض " \t\n" است. در
توابع تعداد فیلدها یا نشانه ها را برمی گرداند.

فیلدها و نشانه ها در آرایه آرگومان ذخیره می شوند. آرایه باید باشد رشته-
ارزش گذاری شده و اگر یک نوع شاخص مشخص شده باشد، باید باشد INT. ورودی ها نمایه می شوند
توسط اعداد صحیح متوالی، که از 0 شروع می شود. هر مقداری که قبلاً در آرایه ذخیره شده باشد،
یا رونویسی شود یا پس از بازگشت تابع همچنان وجود داشته باشد.

I / O
چاپ(...): از درجه اعتبار ساقط
چاپ( صادرات, ... ) نمایش رشته ای از هر آرگومان را به نوبه خود بر روی آن چاپ می کند
stdout، به دنبال آن یک خط جدید.

printf(fmt : رشته, ...): INT

printf(fd : INT, fmt : رشته, ...): INT
رشته حاصل از قالب بندی مقادیر عبارات زیر را چاپ می کند
fmt با توجه به printf(3) قالب fmt. در صورت موفقیت 0 برمی گرداند. به طور پیش فرض، آن را
چاپ بر روی stdout. اگر عدد صحیح اختیاری باشد fd داده می شود، خروجی روی آن نوشته می شود
جریان باز مرتبط با fd.

اسکنر(fmt : رشته, ...): INT

اسکنر(fd : INT, fmt : رشته, ...): INT
اسکن مقادیر از یک جریان ورودی مطابق با اسکنر(3) قالب fmt.
مقادیر در آدرس های زیر ذخیره می شوند fmt، آدرس هایی که دارای فرم هستند &v,
جایی که v یک متغیر اعلام شده از نوع صحیح است. به طور پیش فرض، از خوانده می شود
stdin. اگر عدد صحیح اختیاری باشد fd داده می شود، ورودی از جریان باز خوانده می شود
ارتباط با fd. تعداد مواردی که با موفقیت اسکن شده اند را برمی گرداند.

openF(s : رشته, t : رشته): INT
فایل را باز می کند s به عنوان یک جریان ورودی/خروجی. آرگومان رشته t نحوه فایل را مشخص می کند
باز شد. آرگومان ها مانند تابع C هستند باز کردن(3). یک را برمی گرداند
عدد صحیح نشان دهنده جریان، یا -1 در خطا.

طبق معمول، جریان های 0، 1 و 2 از قبل باز هستند stdin, stdoutو استدرر,
به ترتیب. از آنجا که gvpr ممکن است استفاده کند stdin برای خواندن نمودارهای ورودی، کاربر باید
از استفاده از این جریان خودداری کنید.

بستن اف(fd : INT): INT
جریان باز که با عدد صحیح نشان داده شده است را می بندد fd. جریان های 0، 1 و 2 نمی توانند باشند
بسته در صورت موفقیت 0 برمی گرداند.

readL(fd : INT): رشته
خط بعدی خوانده شده از جریان ورودی را برمی گرداند fd. رشته خالی "" را برمی گرداند
در انتهای فایل توجه داشته باشید که کاراکتر newline در رشته برگشتی باقی مانده است.

ریاضی
درصد این سطح(d : دو برابر): دو برابر
e را به dقدرت ام

ورود به سیستم(d : دو برابر): دو برابر
گزارش طبیعی را برمی گرداند d.

sqrt(d : دو برابر): دو برابر
جذر مضاعف را برمی گرداند d.

pow(d : دو برابر, x : دو برابر): دو برابر
بازده d بزرگ شده به xقدرت ام

کیهان(d : دو برابر): دو برابر
کسینوس را برمی گرداند d.

بدون(d : دو برابر): دو برابر
سینوس را برمی گرداند d.

آتان 2(y : دو برابر, x : دو برابر): دو برابر
آرکتانژانت از y / x در محدوده -pi تا pi.

MIN(y : دو برابر, x : دو برابر): دو برابر
حداقل را برمی گرداند y و x.

MAX(y : دو برابر, x : دو برابر): دو برابر
حداکثر از y و x.

مشارکتی آرایه ها
# ورود : INT
تعداد عناصر موجود در آرایه را برمی گرداند ورود.

idx in ورود : INT
اگر مقداری برای شاخص تنظیم شده باشد، 1 را برمی گرداند idx در آرایه ورود. 0 برمی گرداند
در غیر این صورت.

تنظیم نشده(v : صف, idx): INT
مورد نمایه شده توسط را حذف می کند idx. اگر مورد وجود داشته باشد، 1، در غیر این صورت 0 را برمی گرداند.

تنظیم نشده(v : صف): از درجه اعتبار ساقط
آرایه را دوباره راه اندازی می کند.

متفرقه
خروج(v : INT): از درجه اعتبار ساقط
علل gvpr برای خروج با کد خروج v.

سیستم(CMD : رشته): INT
تابع استاندارد C را ارائه می دهد سیستم(3). اجرا می کند CMD در پوسته کاربر
محیط، و وضعیت خروج از پوسته را برمی گرداند.

حاشیه(): دو برابر
یک دوتایی شبه تصادفی بین 0 و 1 برمی گرداند.

سرند(): INT

سرند(v : INT): INT
یک دانه برای مولد اعداد تصادفی تنظیم می کند. آرگومان اختیاری seed را می دهد.
اگر حذف شود، از زمان فعلی استفاده می شود. مقدار دانه قبلی برگردانده می شود.
سرند قبل از هر تماسی باید تماس گرفته شود حاشیه.

colorx(رنگ : رشته, fmt : رشته): رشته
یک رنگ را از یک فرمت به فرمت دیگر ترجمه می کند. در رنگ آرگومان باید یک رنگ باشد
در یکی از نمایش های رشته شناخته شده. در fmt ارزش باید یکی از
"RGB"، "RGBA"، "HSV"، یا "HSVA". یک رشته خالی در صورت خطا برگردانده می شود.

توکار متغیرها


gvpr متغیرهای خاص و داخلی خاصی را ارائه می دهد که مقادیر آنها به طور خودکار توسط آن تنظیم می شود
gvpr بسته به زمینه به جز موارد ذکر شده، کاربر نمی تواند مقادیر خود را تغییر دهد.

$ : obj_t
بسته به زمینه، شی فعلی (گره، لبه، نمودار) را نشان می دهد. این نیست
قابل دسترسی در شروع or END بندها

$F : رشته
نام فایل ورودی فعلی است.

$G : graph_t
نشان دهنده نمودار فعلی در حال پردازش است. در دسترس نیست شروع or END
بندها

$NG : graph_t
نشان دهنده گراف بعدی است که باید پردازش شود. اگر $NG NULL است، نمودار فعلی $G هست
آخرین نمودار توجه داشته باشید که اگر ورودی از stdin باشد، آخرین گراف نمی تواند باشد
تا زمانی که لوله ورودی بسته شود تعیین می شود. در دسترس نیست شروع or END
بندها، یا اگر -n پرچم استفاده می شود.

$O : graph_t
نمودار خروجی را نشان می دهد. قبل از پیمایش گراف، به هدف مقداردهی اولیه می شود
نمودار بعد از پیمایش و هر END_G اقدامات، اگر به یک نمودار غیر خالی اشاره دارد،
آن نمودار بر روی جریان خروجی چاپ می شود. فقط در N, E و END_G
بندها نمودار خروجی ممکن است توسط کاربر تنظیم شود.

$T : graph_t
نمودار هدف فعلی را نشان می دهد. زیرگرافی از $G و فقط در دسترس است
N, E و END_G بندها

$tgtname : رشته
نام گراف هدف را نشان می دهد. به طور پیش فرض روی آن تنظیم شده است "gvpr_result". اگر
چندین بار در طول اجرا استفاده شده است gvpr، نام با یک ضمیمه خواهد شد
عدد صحیح این متغیر ممکن است توسط کاربر تنظیم شود.

$tvroot : node_t
گره شروع را برای یک عمق-اول یا وسعت- (هدایت شده یا غیر جهت دار) نشان می دهد.
اولین پیمایش نمودار (ر.ک. $tvtype زیر). مقدار پیش فرض است NULL برای
هر نمودار ورودی پس از پیمایش در ریشه داده شده، اگر مقدار $tvroot
تغییر کرده است، یک پیمایش جدید با مقدار جدید شروع خواهد شد $tvroot. همچنین، تنظیم کنید
$tvnext زیر کلیک کنید.

$tvnext : node_t
گره شروع بعدی را برای یک عمق-اول یا (جهت داده یا غیر جهت دار) نشان می دهد
عرض-اولین پیمایش نمودار (ر.ک. $tvtype زیر). اگر یک پیمایش تمام شود
و $tvroot ریست نشده است اما $tvnext تنظیم شده است اما استفاده نشده است، این
گره به عنوان انتخاب بعدی استفاده خواهد شد $tvroot. مقدار پیش فرض است NULL برای
هر نمودار ورودی

$tvedge : edge_t
برای پیمایش های BFS و DFS، این روی لبه ای تنظیم می شود که برای رسیدن به جریان استفاده می شود
گره یا لبه در ابتدای پیمایش، یا برای انواع دیگر پیمایش،
ارزش است NULL.

$tvtype : tvtype_t
نشان می دهد که چگونه gvpr یک نمودار را طی می کند فقط می تواند یکی از مقادیر ثابت را بگیرد
با پیشوند "TV_" که در زیر توضیح داده شده است. تلویزیون_تخت پیش فرض است.

در کتابخانه گراف زیرین cgraph(3)، یال‌ها در گراف‌های بدون جهت نشان داده می‌شوند
جهت دلخواه این برای پیمایش استفاده می شود، مانند TV_fwd، نیاز دارد
لبه های هدایت شده

ARGC : INT
نشان دهنده تعداد آرگومان های مشخص شده توسط -a قوس آرگومان خط فرمان

ARGV : رشته صف
نشان دهنده آرایه آرگومان های مشخص شده توسط -a قوس آرگومان خط فرمان در
iآرگومان توسط ARGV[i].

توکار ثابت ها


چندین ثابت نمادین وجود دارد که توسط gvpr.

NULL : obj_t
یک مرجع شی تهی، معادل 0.

تلویزیون_تخت : tvtype_t
یک پیمایش ساده و مسطح، با اشیاء نموداری که به ترتیب ظاهراً دلخواه بازدید شده است.

TV_ne : tvtype_t
پیمایشی که ابتدا تمام گره ها و سپس تمام لبه ها را بازدید می کند.

TV_en : tvtype_t
یک پیمایش که ابتدا تمام لبه ها و سپس تمام گره ها را بازدید می کند.

TV_dfs : tvtype_t
TV_postdfs : tvtype_t
TV_prepostdfs : tvtype_t
پیمایش نمودار با استفاده از یک جستجوی عمقی بر روی بی جهت زیربنایی
نمودار برای انجام پیمایش، gvpr مقدار را بررسی خواهد کرد $tvroot. اگر این داشته باشد
همان مقداری که قبلا داشت (در ابتدا مقدار قبلی مقدار دهی اولیه می شود
به NULL.) gvpr به سادگی به دنبال یک گره بازدید نشده می گردد و متصل به آن را طی می کند
جزء. از سوی دیگر، اگر $tvroot تغییر کرده است، جزء متصل آن خواهد شد
با فرض اینکه قبلاً بازدید نشده باشد یا اگر $tvroot is NULLاز
پیمایش متوقف خواهد شد توجه داشته باشید که با استفاده از TV_dfs و $tvroot، امکان ایجاد وجود دارد
یک حلقه بی نهایت

به طور پیش فرض، پیمایش به صورت پیش سفارش انجام می شود. یعنی یک گره قبلا بازدید شده است
تمام لبه های بازدید نشده آن برای TV_postdfs، تمام لبه های بازدید نشده یک گره هستند
قبل از گره بازدید شده است. برای TV_prepostdfs، یک گره دو بار بازدید می شود، قبل از و
بعد از تمام لبه های بازدید نشده اش.

TV_fwd : tvtype_t
TV_postfwd : tvtype_t
TV_prepostfwd : tvtype_t
پیمایش نمودار فقط با استفاده از جستجوی عمقی در نمودار زیر
قوس های جلو انتخاب ریشه برای پیمایش همان است که برای آن توضیح داده شد
TV_dfs در بالا. ترتیب مختلف بازدید مشخص شده توسط TV_fwd, TV_postfwd
و TV_prepostfwd همان مواردی هستند که توسط پیمایش های مشابه مشخص شده اند
TV_dfs, TV_postdfs و TV_prepostdfs.

TV_rev : tvtype_t
TV_postrev : tvtype_t
TV_prepostrev : tvtype_t
پیمایش نمودار فقط با استفاده از جستجوی عمقی در نمودار زیر
قوس های معکوس انتخاب ریشه برای پیمایش همان است که برای آن توضیح داده شد
TV_dfs در بالا. ترتیب مختلف بازدید مشخص شده توسط TV_rev, TV_postrev
و TV_prepostrev همان مواردی هستند که توسط پیمایش های مشابه مشخص شده اند
TV_dfs, TV_postdfs و TV_prepostdfs.

TV_bfs : tvtype_t
پیمایش نمودار با استفاده از جستجوی پهنا-اول در نمودار بدون توجه به لبه
جهت ها. مورد را مشاهده کنید TV_dfs بالا برای نقش $tvroot.

مثال ها


gvpr -i 'N[color=="آبی"]' file.gv

زیرگراف القا شده از گره همه گره ها را با رنگ آبی ایجاد کنید.

gvpr -c 'N[color=="آبی"]{رنگ = "قرمز"}' file.gv

همه گره های آبی را قرمز کنید.

شروع { INT n, e; INT tot_n = 0; INT tot_e = 0; }
BEG_G {
n = nNodes ($G);
e = nEdges ($G);
printf ("%d گره %d لبه %s\n"، n, e, $G.name)؛
tot_n += n;
tot_e += e;
}
END { printf ("%d گره %d لبه کل\n" tot_n، tot_e) }

نسخه برنامه gc.

gvpr -c ""

معادل با نپ.

BEG_G { graph_t g = گراف ("ادغام"، "S")؛ }
E {
node_t h = کلون (g,$.head);
node_t t = کلون (g,$.tail);
edge_t e = لبه (t،h،")؛
e.وزن = e.وزن + 1;
}
END_G { $O = g; }

یک نسخه دقیق از نمودار ورودی تولید می کند که در آن ویژگی وزن یک یال است
نشان می دهد که یال چند یال از نمودار ورودی را نشان می دهد.

شروع {node_t n; INT درجه[]}
E{deg[head]++; deg[tail]++; }
END_G {
برای (درجه[n]) {
printf ("درجه[%s] = %d\n"، n.name درجه[n])؛
}
}

درجات گره ها را با لبه محاسبه می کند.

شروع {
INT i, تورفتگی
INT دیده شده[رشته];
از درجه اعتبار ساقط چاپ (بین cnt) {
برای (i = 0; i < cnt; من ++) printf (" ")؛
}
}
BEG_G {

$tvtype = TV_prepostfwd;
$tvroot = گره ($,ARGV[0]);
}
N {
if (دیده شده[$.name]) تورفتگی--
دیگر {
prInd(indent);
چاپ ($.name)؛
دیده شده[$.name] = 1;
تورفتگی ++;
}
}

اولین پیمایش عمق گراف را چاپ می کند و با گره ای که نام آن است شروع می شود
ARGV[0]، به عنوان یک لیست تورفتگی.

محیط زیست


GVPRPATH
فهرست دایرکتوری های جدا شده با دو نقطه برای جستجو برای یافتن فایل مشخص شده توسط
گزینه -f gvpr دارای یک لیست پیش فرض ساخته شده است GVPRPATH تعریف نشده است،
لیست پیش فرض استفاده می شود. اگر GVPRPATH با دو نقطه شروع می شود، لیست توسط
ضمیمه کردن GVPRPATH به لیست پیش فرض اگر GVPRPATH با دو نقطه به پایان می رسد، لیست است
با الحاق لیست پیش فرض به GVPRPATH. در غیر این صورت، GVPRPATH استفاده شده برای
لیست.

در سیستم های ویندوز، در پاراگراف قبل، «دونقطه» را با «نقطه ویرگول» جایگزین کنید.

از gvpr آنلاین با استفاده از خدمات onworks.net استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad