Hi John, I had a little think about this, and the solution is quite easy:
1. cd to home directory, create a new sub-directory called m4proj, and cd
into that directory: # cd ~/; mkdir m4proj; cd m4proj
2. create your inputFile.m4 with the text: A word can expand to many
things.: # echo "A word can expand to many things.">inputFile.m4
3. open a text editor of your choice to create your def.m4 m4 file, and save
it with the following code:
define(word,term)`'define(many,a great `many')dnl
include(inputFile.m4)
4. run your code: m4 def.m4

Note how the inputFile.m4 is referred to via inclusion, so that if the
contents of that change, then the output changes!

Having a little think,
Daniel.

On Mon, Jul 18, 2011 at 4:10 AM, John Allsup <[email protected]> wrote:

> I've had a little think about this.  The simplest problem I can set you m4
> people is the task of writing
> a simple macro driven input that does the following:
>
> Given a source file in1.m4 which contains the following:
>    A word can expand to many things.
> and the file def.m4 which contains
>    define(word,term)define(many,a great `many')
> the challenge is to generate the output
>    The phrase 'A word can expand to many things' may be expanded to the
> following.
>        A term can expand to a great many things.
> using the simplest m4 input possible and by referring to the contents of
> the file via inclusion so that
> if the contents of the input file change, the output changes accordingly.
>
> Have a think.
>
> John
>
>
>
> On 18/07/11 03:57, John Calcote wrote:
>
>> Hi John,
>>
>> I see exactly what you want, but I'm not sure what you're asking for is
>> reasonable. Why would you want to run a file though a macro processor and
>> not have it process any macros? Given your original input files, "a" and
>> "b", consider this sequence of commands:
>>
>> cat a | m4>  out.txt
>> cat b>>  out.txt
>>
>> This would see to accomplish exactly what you want, wouldn't it?
>>
>> Regards,
>> John Calcote
>>
>> -----Original Message-----
>> From: m4-discuss-bounces+john.**[email protected]
>> [mailto:m4-discuss-bounces+**john.calcote<m4-discuss-bounces%2Bjohn.calcote>
>> [email protected]**] On Behalf Of
>> [email protected]
>> Sent: Sunday, July 17, 2011 10:00 AM
>> To: [email protected]
>> Subject: m4-discuss Digest, Vol 72, Issue 1
>>
>> Send m4-discuss mailing list submissions to
>>        [email protected]
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>>        
>> https://lists.gnu.org/mailman/**listinfo/m4-discuss<https://lists.gnu.org/mailman/listinfo/m4-discuss>
>> or, via email, send a message with subject or body 'help' to
>>        [email protected]
>>
>> You can reach the person managing the list at
>>        [email protected]
>>
>> When replying, please edit your Subject line so it is more specific than
>> "Re: Contents of m4-discuss digest..."
>>
>>
>> Today's Topics:
>>
>>    1. Simple method of including a file that bypasses macro
>>       expansion (John Allsup (M4))
>>
>>
>> ------------------------------**------------------------------**
>> ----------
>>
>> Message: 1
>> Date: Sun, 17 Jul 2011 08:15:04 +0100 (BST)
>> From: "John Allsup (M4)"<[email protected]>
>> To: [email protected]
>> Subject: Simple method of including a file that bypasses macro
>>        expansion
>> Message-ID:
>>
>> <315299693.53381.**1310886904889.JavaMail.open-**
>> [email protected]<315299693.53381.1310886904889.javamail.open-xcha...@oxltgw02.schlund.de>
>> >
>>
>> Content-Type: text/plain; charset="utf-8"
>>
>> Hi,
>> ?
>> I am relatively new to m4, but can't seem to find an equivalent to include
>> that bypasses macro expansion.
>> ?
>> Suppose file 'a' contains
>> ? hello world
>> and file 'b' contains
>> ? goodbye world
>> and in my m4 I have defined
>> ? define(world,and).
>> I a macro which I will call 'oinclude' such that ? include(a) oinclude(b)
>> expands to ? hello and goodbye world.
>>
>> Is there a simple method?
>> ?
>> Thanks,
>> ?
>> John?
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL:
>> </archive/html/m4-discuss/**attachments/20110717/1a5f3c41/**
>> attachment.html>
>>
>> End of m4-discuss Digest, Vol 72, Issue 1
>> *******************************************
>>
>>
>>
>
>

Reply via email to