runawk

البرمجيات قطة:
runawk
تفاصيل البرنامج:
الإصدار: 1.5.0
تاريخ إيداع: 19 Feb 15
المطور: Aleksey Cheusov
ترخيص: حرر
شعبية: 76

Rating: 1.0/5 (Total Votes: 1)

وrunawk هو مجمع صغير للAWK مترجم أن impements نظام وحدة ويساعد على كتابة برامج AWK مستقل.
MOTIVATION
بعد سنوات من استخدام AWK للبرمجة لقد وجدت أنه على الرغم من
بساطته والقيود AWK هو جيد بما فيه الكفاية للبرمجة واسعة
مجموعة من المهام المختلفة. AWK ليس poweful قدر أكبر من
نظرائهم مثل بيرل، روبي، تى سى ال وغيرها ولكن لديها خاصة بهم
مزايا مثل الاكتناز والبساطة وتوفر تقريبا على جميع
أنظمة مثل UNIX. أنا شخصيا أيضا أحب الطبيعة تعتمد على البيانات و
التوجه رمزي، تقنية مفيدة جدا لمعالجة نصي
المرافق العامة.
ولكن! AWK للأسف المترجمين الفوريين يفتقر إلى بعض الميزات الهامة و
العمل أحيانا ليست جيدة كما أنه whould يكون.
بعض المشاكل أرى (بعض منهم، بالطبع).
1) AWK تفتقر إلى الدعم لوحدات. حتى لو كنت إنشاء برامج صغيرة، وأنا
في كثير من الأحيان تريد استخدام وظائف بإنشائها سابقا وتستخدم بالفعل في
مخطوطات أخرى. وهذا هو، فإنه whould كبير لorginise وظائف في
ما يسمى المكتبات (وحدات).
2) من أجل تمرير الوسائط إلى #! / البيرة / بن / AWK -f النصي (لا AWK
مترجم)، فمن الضروري أن prepand قائمة
الحجج مع - (اثنان و signes ناقص). من وجهة نظري، وهذا يبدو سيئا.
على سبيل المثال:
awk_program:
على & nbsp؛ على & nbsp؛ على & nbsp؛ #! / البيرة / بن / AWK -f
على & nbsp؛ على & nbsp؛ على & nbsp؛ ابدأ {
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ ل(ط = 1؛ ط على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ printf "ARGV [٪ د] =٪ ق"، ط، ARGV [أنا]
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ }
على & nbsp؛ على & nbsp؛ على & nbsp؛ }
جلسة قذيفة:
على & nbsp؛ على & nbsp؛ على & nbsp؛ ٪ awk_program --opt1 --opt2
على & nbsp؛ على & nbsp؛ على & nbsp؛ / البيرة / بن / AWK: خيار غير معروف --opt1 تجاهلها
على & nbsp؛ على & nbsp؛ على & nbsp؛ / البيرة / بن / AWK: خيار غير معروف --opt2 تجاهلها
على & nbsp؛ على & nbsp؛ على & nbsp؛ ٪ awk_program - --opt1 --opt2
على & nbsp؛ على & nbsp؛ على & nbsp؛ ARGV [1] = - opt1
على & nbsp؛ على & nbsp؛ على & nbsp؛ ARGV [2] = - opt2
على & nbsp؛ على & nbsp؛ على & nbsp؛ ٪
في رأيي awk_program النصي يجب أن تعمل مثل هذا (تماما مثل
البرامج العادية تفعل)
على & nbsp؛ على & nbsp؛ على & nbsp؛ ٪ awk_program --opt1 --opt2
على & nbsp؛ على & nbsp؛ على & nbsp؛ ARGV [1] = - opt1
على & nbsp؛ على & nbsp؛ على & nbsp؛ ARGV [2] = - opt2
على & nbsp؛ على & nbsp؛ على & nbsp؛ ٪
ومن الممكن استخدام runawk.
3) عندما يعالج #! / البيرة / بن / AWK -f النصي الحجج (خيارات) ويريد
القراءة من ستدين، فمن الضروري إضافة
/ ديف / ستدين (أو `- ') كحجة مشاركة explicitely.
على سبيل المثال:
awk_program:
على & nbsp؛ على & nbsp؛ على & nbsp؛ #! / البيرة / بن / AWK -f
على & nbsp؛ على & nbsp؛ على & nbsp؛ ابدأ {
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ إذا (ARGV [1] == "--flag") {
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ العلم = 1
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ ARGV [1] = "" # لا يقرأ ملف اسمه "--flag"
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ }
على & nbsp؛ على & nbsp؛ على & nbsp؛ }
على & nbsp؛ على & nbsp؛ على & nbsp؛ {
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ طباعة "العلم =" العلم "$ = 0" $ 0
على & nbsp؛ على & nbsp؛ على & nbsp؛ }
جلسة قذيفة:
على & nbsp؛ على & nbsp؛ على & nbsp؛ ٪ صدى اختبار | awk_program - --flag
على & nbsp؛ على & nbsp؛ على & nbsp؛ ٪ صدى اختبار | awk_program - --flag / ديف / ستدين
على & nbsp؛ على & nbsp؛ على & nbsp؛ العلم = $ 1 = 0 اختبار
على & nbsp؛ على & nbsp؛ على & nbsp؛ ٪
ومن الناحية المثالية awk_program يجب أن تعمل مثل هذه
على & nbsp؛ على & nbsp؛ على & nbsp؛ ٪ اختبار صدى | awk_program --flag
على & nbsp؛ على & nbsp؛ على & nbsp؛ العلم = $ 1 = 0 اختبار
على & nbsp؛ على & nbsp؛ على & nbsp؛ ٪
يتم حل كل هذه probles التي كتبها runawk وهذا هو السبب في أنني كتبت ذلك.
I تشمل أيضا عدد قليل من وحدات لrunawk التوزيع التي هي
من المفيد بالنسبة لي وآمل أن تكون مفيدة بالنسبة لك أيضا.
INSTALLATION
0) مطلوب BSD جعل. I تسميته مجرد 'جعل' ولكن يجوز اسمها الحقيقي
على & nbsp؛ على & nbsp؛ تختلف ونبسب؛ bmake وpmake هي أسماء محتملة.
على & nbsp؛ على & nbsp؛ إذا كنت بحاجة إلى تغيير الخيارات الافتراضية بناء،
على & nbsp؛ على & nbsp؛ تشغيل جعل مثل هذا
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ الحياة الفطرية [YOUR_ASSIGNMENTS] جعل <الهدف>
على & nbsp؛ على & nbsp؛ انظر المثال أدناه
1) كتل القطران إلغاء ضغط قمت بتحميلها من هذا القبيل
على & nbsp؛ على & nbsp؛ غزيب -DC runawk-X-Y-Z.tar.gz | القطران -xf-
2) مؤتمر نزع السلاح runawk-X-Y-Z
3) جعل
4) (اختياري!) جعل تثبيت تطبيق الاستعراض المفصل
5) جعل تثبيت
هناك الكثير من المتغيرات MAKEFILE التي يمكن تغييرها خلال
. التركيب على & nbsp؛ المتغيرات Runawk الخاصة (كل هم في بداية ل
ماكيفيلي):
على & nbsp؛ PREFIX على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ - حيث تم تثبيت runawk ل
على & nbsp؛ MODULESDIR على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ - الدليل حيث يتم تثبيت وحدات ل
على & nbsp؛ AWK_PROG على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ - الطريق إلى AWK مترجم
على & nbsp؛ STDIN_FILENAME - المسار إلى ملف جهاز ستدين
متغيرات BSD جعل ل(الأكثر استخداما،
لجميع الآخرين - راجع وثائق جعل والملفات .MK)
على & nbsp؛ بيندير - حيث runawk القابل للتنفيذ تثبيت نفسها ل
على & nbsp؛ MANDIR - حيث يتم تثبيت صفحات اليدوية ل
على & nbsp؛ BINOWN - runawk صاحب قابل للتنفيذ
على & nbsp؛ BINGRP - runawk مجموعة القابلة للتنفيذ
على & nbsp؛ MANOWN - رجل صاحب الصفحة
على & nbsp؛ MANGRP - مجموعة الصفحات رجل
على سبيل المثال:
على & nbsp؛ على & nbsp؛ الحياة الفطرية CC = دول مجلس التعاون الخليجي
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ PREFIX = / الوطن / cheusov / المحلية
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ LDFLAGS = '- L / البيرة / PKG / ليب -Wl، -rpath -Wl، / البيرة / PKG / ليب "
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ LDADD = -lextralib
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ CFLAGS = '- Werror -Wall "
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ CPPFLAGS = -I / البيرة / PKG / تشمل
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ BINOWN = cheusov
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ BINGRP = المستخدمين
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ MANOWN = cheusov
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ MANGRP = المستخدمين
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ MKCATPAGES = لا
على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ على & nbsp؛ جعل جميع -s تثبيت تطبيق الاستعراض المفصل تثبيت

ما هو الجديد في هذا الإصدار:

الخيارات -i، -I، وتمت إزالة جميع الخيارات طويلة تماما.
تمت إضافة -T خيار لإدخال كلفه.
تم توثيقه في -v الخيار في الصفحة رجل.
إصلاحات لتحذيرات تجميع مجلس التعاون الخليجي.
إصلاحات لتجميع مع MAKEOBJDIR غير فارغة.
إصلاحات الخطأ المطبعي في صفحات NEW، runcmd.awk، والإنسان.

ما هو الجديد في الإصدار 1.4.4:

تم إصلاح الخلل في إزالة الدلائل في دليل مؤقت.
تحسينات لrunawk_modules.3.

ما هو الجديد في الإصدار 1.4.3:

paexec (1) لا تستخدم نظام (3) بعد الآن لإزالة الدليل المؤقت.
تم نقل print_help وظيفة () من وحدة power_getopt.awk إلى init_getopt.awk.

ما هو الجديد في الإصدار 1.4.2:

هذا الإصدار يضيف runawk_modules.3 حيث يتم توثيق جميع وحدات، يستنكر خيارات طويلة، ويزيل الخيارات -i و-I، ويشمل صفحات رجل في كتل القطران التوزيع بحيث ليست هناك حاجة لبناء pod2man.

ما هو الجديد في الإصدار 1.4.0:

في exitnow.awk، و(الحالة) وظيفة exitnow ينتهي الآن تنفيذ البرنامج النصي دون تشغيل أقسام END حتى لو وضع == 0.
وحدة جديدة io.awk تشمل وظائف النسق هو {ملف، دير، إكسيك، ومأخذ، FIFO، blockdev، chardev، الارتباط الرمزي}، file_size، وFILE_TYPE. tokenre.awk لديه وظيفة splitre0 جديدة ().

ما هو الجديد في الإصدار 1.3.2: يتم نقلهم

صفائف الداخلية الآن تلقائيا. هذا يحدد استخدام runawk (1) في تركيبة مع xargs (1)، على سبيل المثال، القط files.txt | xargs runawk -e '...'.

ما هو الجديد في الإصدار 1.3.0:

إصلاح لرسالة تحذير مترجم إنتل C.
إصلاح لوظيفة shquote () من وحدات / shquote.awk.
وقد أعيد تنظيم شفرة المصدر للمشروع، مما يسمح سهلة التركيب في أي فرعي: أمثلة، ونماذج وrunawk، alt_getopt، وثيقة (TODO، README، الخ الملفات).

ما هو الجديد في الإصدار 1.1.0:

وأضيفت الخيار -F.
ord.awwas جديدة ftrans_in.awk، وشملت وحدات glob.awk.
وأدرج alt_getopt قابل للتنفيذ جديد لتحليل الخيارات قصيرة وطويلة في البرامج النصية قذيفة.
وقدمت min3 الجديد، min4، min5، min_key، MIN_VALUE، وkey_of_min_value (min.awk)، وMAX3، max4، max5، max_key، MAX_VALUE، وkey_of_max_value (max.awk) وظائف.
تم إضافة نماذج جديدة: أمثلة / demo_minmax، والأمثلة / demo_tokenre3، والأمثلة / demo_ftrans، والأمثلة / demo_glob *.
تمت إضافة ميزة جديدة في multisub.awk.
أدخلت تحسينات طفيفة في إجراء التثبيت.

ما هو الجديد في الإصدار 0.16.0:

تم إنشاؤها الكثير من البرامج التجريبية لمعظم وحدات runawk وهما في الأمثلة / دليل فرعي الآن. وحدة MEGA الجديدة؛-) power_getopt.awk راجع وثائق وبرنامج تجريبي أمثلة / demo_power_getopt. فهو يجعل خيارات التعامل مع من السهل حقا. وحدات جديدة: embed_str.awk has_suffix.awk has_prefix.awk readfile.awk modinfo.awk إصلاحات وتحسينات طفيفة في dirname.awk وbasename.awk. الآن أنها متوافقة تماما مع dirname (1) وbasename (1) RUNAWK يضع متغيرات البيئة التالية لفرعي أو جانبي AWK الطفل: RUNAWK_MODC - وهناك عدد من وحدات (اسم الملف -f) التي تم تمريرها إلى AWK RUNAWK_MODV_ - المسار الكامل إلى وحدة #N ، حيث n هو في [0..RUNAWK_MODC) مجموعة. RUNAWK يحدد RUNAWK_ART_STDIN متغير البيئة لفرعي أو جانبي AWK الطفل إلى 1 إذا إضافية / الاصطناعي `- 'تم إضافتها إلى قائمة إلى الحجج AWK ل. أزيلت bmake-حركة التضامن الدولية: ماكيفيلي. الآن ماكيفيلي متوافق تماما مع فري جعل. ويستخدم الهدف CLEANFILES بدلا من القواعد يدوية الصنع الإصلاح طفيفة في الهدف 'test_all "

برامج مماثلة

LLVM
LLVM

17 Aug 18

PL/1 for GCC
PL/1 for GCC

2 Jun 15

Jikes
Jikes

3 Jun 15

البرامج الأخرى من المطور Aleksey Cheusov

LMDBG
LMDBG

20 Feb 15

paexec
paexec

20 Feb 15

mk-configure
mk-configure

20 Feb 15

تعليقات ل runawk

لم يتم العثور على التعليقات
إضافة تعليق
بدوره على الصور!