ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Finding values ​​of the context macros inside Lua functions (=expansion inside Lua functions?)
@ 2011-07-17 12:01 Jaroslav Hajtmar
  2011-07-17 12:19 ` Wolfgang Schuster
  0 siblings, 1 reply; 7+ messages in thread
From: Jaroslav Hajtmar @ 2011-07-17 12:01 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Hello all,

For several hours trying to find solutions of problem.

My minimal example (I mention it at the end of email)  for clear reasons 
show, that :

7 is not number.
7 is number.
7is not number.
7is not number.


In the first is argument '\value' negotiable to the value, in second it 
is not possible (but for clear reasons too).

I would need to find from  argument ie macro '\\value'  in the LUA 
function its numerical value.
Is there any function that would do that?

I need something as a function of context (...), which would, however, 
its output is not located into ConTeXt, but its result get to back to a 
Lua function or into variable.
It is something like the expansion of an existing ConTeXt macro to its 
value.

Thanx Jaroslav


Here is my minimal example:

\startluacode
function test(arg)

   if type(arg)=='number' then
     context(arg.." is number.\\par ")
   else
     context(arg.." is not number.\\par")
   end

   if type(tonumber(arg))=='number' then
     context(arg.." is number.\\par ")
   else
     context(arg.." is not number.\\par")
   end
end

\stopluacode


\starttext
   \def\value{7}

   \ctxlua{test('\value');}

   \blank[big]

   \ctxlua{test('\\value');}

\stoptext




___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re:  Finding values ​​of the context macros inside Lua functions (=expansion inside Lua functions?)
  2011-07-17 12:01 Finding values ​​of the context macros inside Lua functions (=expansion inside Lua functions?) Jaroslav Hajtmar
@ 2011-07-17 12:19 ` Wolfgang Schuster
  2011-07-17 12:42   ` Jaroslav Hajtmar
  0 siblings, 1 reply; 7+ messages in thread
From: Wolfgang Schuster @ 2011-07-17 12:19 UTC (permalink / raw)
  To: hajtmar, mailing list for ConTeXt users


Am 17.07.2011 um 14:01 schrieb Jaroslav Hajtmar:

> Hello all,
> 
> For several hours trying to find solutions of problem.
> 
> My minimal example (I mention it at the end of email)  for clear reasons show, that :
> 
> 7 is not number.
> 7 is number.
> 7is not number.
> 7is not number.
> 
> In the first is argument '\value' negotiable to the value, in second it is not possible (but for clear reasons too).
> 
> I would need to find from  argument ie macro '\\value'  in the LUA function its numerical value.
> Is there any function that would do that?
> 
> I need something as a function of context (...), which would, however, its output is not located into ConTeXt, but its result get to back to a Lua function or into variable.
> It is something like the expansion of an existing ConTeXt macro to its value.

\startluacode
function test(arg) -- use thirddata namespace for real functions
	if type(tonumber(arg)) == "number" then
		if tonumber(arg) > 0 then
			context("The argument \\quotation{%s} is a positive number",arg)
		else
			context("The argument \\quotation{%s} is a negative number",arg)
		end
	else
		context("The argument \\quotation{%s} is a string.",arg)
	end
end
\stopluacode

\starttext

\ctxlua{test("7")}

\ctxlua{test("-4")}

\ctxlua{test("text")}

\stoptext

Wolfgang

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re:  Finding values ​​of the context macros inside Lua functions (=expansion inside Lua functions?)
  2011-07-17 12:19 ` Wolfgang Schuster
@ 2011-07-17 12:42   ` Jaroslav Hajtmar
  2011-07-17 12:53     ` Wolfgang Schuster
  0 siblings, 1 reply; 7+ messages in thread
From: Jaroslav Hajtmar @ 2011-07-17 12:42 UTC (permalink / raw)
  To: Wolfgang Schuster; +Cc: mailing list for ConTeXt users

Thanx Wolfgang.
But I guess I was wrong to express..

I need to pass parameter  '\\macroI' to the function  and turn it up a 
inside luafunction  expand to its value.

Ie when \def\macroI{6}

Then I need when I make in your example \ctxlua{test("\\macroI")} get 
the result :
"The argument “6” is a positive number" and not result "The argument “6” 
is a string."

see: I modify your example :

\startluacode
function test(arg) -- use thirddata namespace for real functions
     if type(tonumber(arg)) == "number" then
         if tonumber(arg) > 0 then
             context("The argument \\quotation{%s} is a positive 
number",arg)
         else
             context("The argument \\quotation{%s} is a negative 
number",arg)
         end
     else
         context("The argument \\quotation{%s} is a string.",arg)
     end
end
\stopluacode






\starttext

\ctxlua{test("7")}

\ctxlua{test("-4")}

\ctxlua{test("text")}

\def\macroI{6}

\ctxlua{test("\macroI")}

\ctxlua{test("\\macroI")}


\stoptext


Dne 17.7.2011 14:19, Wolfgang Schuster napsal(a):
> Am 17.07.2011 um 14:01 schrieb Jaroslav Hajtmar:
>
>    
>> >  Hello all,
>> >  
>> >  For several hours trying to find solutions of problem.
>> >  
>> >  My minimal example (I mention it at the end of email)  for clear reasons show, that :
>> >  
>> >  7 is not number.
>> >  7 is number.
>> >  7is not number.
>> >  7is not number.
>> >  
>> >  In the first is argument '\value' negotiable to the value, in second it is not possible (but for clear reasons too).
>> >  
>> >  I would need to find from  argument ie macro '\\value'  in the LUA function its numerical value.
>> >  Is there any function that would do that?
>> >  
>> >  I need something as a function of context (...), which would, however, its output is not located into ConTeXt, but its result get to back to a Lua function or into variable.
>> >  It is something like the expansion of an existing ConTeXt macro to its value.
>>      
> \startluacode
> function test(arg) -- use thirddata namespace for real functions
> 	if type(tonumber(arg)) == "number" then
> 		if tonumber(arg)>  0 then
> 			context("The argument \\quotation{%s} is a positive number",arg)
> 		else
> 			context("The argument \\quotation{%s} is a negative number",arg)
> 		end
> 	else
> 		context("The argument \\quotation{%s} is a string.",arg)
> 	end
> end
> \stopluacode
>
> \starttext
>
> \ctxlua{test("7")}
>
> \ctxlua{test("-4")}
>
> \ctxlua{test("text")}
>
> \stoptext
>
> Wolfgang
>
>
>    

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re:  Finding values ​​of the context macros inside Lua functions (=expansion inside Lua functions?)
  2011-07-17 12:42   ` Jaroslav Hajtmar
@ 2011-07-17 12:53     ` Wolfgang Schuster
  2011-07-17 13:10       ` Jaroslav Hajtmar
  0 siblings, 1 reply; 7+ messages in thread
From: Wolfgang Schuster @ 2011-07-17 12:53 UTC (permalink / raw)
  To: hajtmar; +Cc: mailing list for ConTeXt users


Am 17.07.2011 um 14:42 schrieb Jaroslav Hajtmar:

> Thanx Wolfgang.
> But I guess I was wrong to express..
> 
> I need to pass parameter  '\\macroI' to the function  and turn it up a inside luafunction  expand to its value.

Not possible.

> Ie when \def\macroI{6}
> 
> Then I need when I make in your example \ctxlua{test("\\macroI")} get the result :
> "The argument “6” is a positive number" and not result "The argument “6” is a string."

That’s odd because for me

  \ctxlua{test("\macroI")}

results in

  The argument “6” is a positive number.

and

  \ctxlua{test("\\macroI")}

in

  The argument “6” is a string.

Wolfgang

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re:  Finding values ​​of the context macros inside Lua functions (=expansion inside Lua functions?)
  2011-07-17 12:53     ` Wolfgang Schuster
@ 2011-07-17 13:10       ` Jaroslav Hajtmar
  2011-07-17 13:40         ` Wolfgang Schuster
  0 siblings, 1 reply; 7+ messages in thread
From: Jaroslav Hajtmar @ 2011-07-17 13:10 UTC (permalink / raw)
  To: Wolfgang Schuster; +Cc: mailing list for ConTeXt users

Wolfgang,
Me too. This is because the parameter '\macroI' is evaluated as a 
number, but the parameter '\\macroI' is in fact really a string - the 
name of a context macro. context (...) command properly put correctly 
content of the  '\macroI' macro into the ConTeXt, but without knowledge 
of his contents ...

If you write that:

>  Not possible.


then it's not for me very good news, because I thus probably not my 
module to process only at the Lua language ...


Thanx Jaroslav...




Dne 17.7.2011 14:53, Wolfgang Schuster napsal(a):
> Am 17.07.2011 um 14:42 schrieb Jaroslav Hajtmar:
>
>    
>> Thanx Wolfgang.
>> But I guess I was wrong to express..
>>
>> I need to pass parameter  '\\macroI' to the function  and turn it up a inside luafunction  expand to its value.
>>      
> Not possible.
>
>    
>> Ie when \def\macroI{6}
>>
>> Then I need when I make in your example \ctxlua{test("\\macroI")} get the result :
>> "The argument “6” is a positive number" and not result "The argument “6” is a string."
>>      
> That’s odd because for me
>
>    \ctxlua{test("\macroI")}
>
> results in
>
>    The argument “6” is a positive number.
>
> and
>
>    \ctxlua{test("\\macroI")}
>
> in
>
>    The argument “6” is a string.
>
> Wolfgang
>
>
>    

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re:  Finding values ​​of the context macros inside Lua functions (=expansion inside Lua functions?)
  2011-07-17 13:10       ` Jaroslav Hajtmar
@ 2011-07-17 13:40         ` Wolfgang Schuster
  2011-07-17 13:49           ` Jaroslav Hajtmar
  0 siblings, 1 reply; 7+ messages in thread
From: Wolfgang Schuster @ 2011-07-17 13:40 UTC (permalink / raw)
  To: hajtmar; +Cc: mailing list for ConTeXt users


Am 17.07.2011 um 15:10 schrieb Jaroslav Hajtmar:

> then it's not for me very good news, because I thus probably not my module to process only at the Lua language ...


You can’t expand macro from Lua but the following is possible:

\startluacode

values = {
	I  = "1",
	II = "2",
}

function test(arg)
	if string.find(arg,"\\macro") then
		arg = string.gsub(arg,"\\macro","")
		if values[arg] then
			context(values[arg])
		else
			context("Invalid index.")
		end
	else
		context("Invalid command.")
	end
end

\stopluacode

\starttext

\starttabulate
\NC \type{\macroI}   \EQ \ctxlua{test("\\macroI")}   \NC\NR
\NC \type{\macroII}  \EQ \ctxlua{test("\\macroII")}  \NC\NR
\NC \type{\macroIII} \EQ \ctxlua{test("\\macroIII")} \NC\NR
\NC \type{\foo}      \EQ \ctxlua{test("\\foo")}      \NC\NR
\stoptabulate

\stoptext

Wolfgang

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re:  Finding values ​​of the context macros inside Lua functions (=expansion inside Lua functions?)
  2011-07-17 13:40         ` Wolfgang Schuster
@ 2011-07-17 13:49           ` Jaroslav Hajtmar
  0 siblings, 0 replies; 7+ messages in thread
From: Jaroslav Hajtmar @ 2011-07-17 13:49 UTC (permalink / raw)
  To: Wolfgang Schuster; +Cc: mailing list for ConTeXt users

Thanx Wolfgang.
It is a good example, which I will definitely come in handy sometimes, 
but unfortunately I can not help my problem to solve.

Once again, many thanks

Jaroslav


Dne 17.7.2011 15:40, Wolfgang Schuster napsal(a):
> You can’t expand macro from Lua but the following is possible:
>
> \startluacode
>
> values = {
> 	I  = "1",
> 	II = "2",
> }
>
> function test(arg)
> 	if string.find(arg,"\\macro") then
> 		arg = string.gsub(arg,"\\macro","")
> 		if values[arg] then
> 			context(values[arg])
> 		else
> 			context("Invalid index.")
> 		end
> 	else
> 		context("Invalid command.")
> 	end
> end
>
> \stopluacode
>
> \starttext
>
> \starttabulate
> \NC \type{\macroI}   \EQ \ctxlua{test("\\macroI")}   \NC\NR
> \NC \type{\macroII}  \EQ \ctxlua{test("\\macroII")}  \NC\NR
> \NC \type{\macroIII} \EQ \ctxlua{test("\\macroIII")} \NC\NR
> \NC \type{\foo}      \EQ \ctxlua{test("\\foo")}      \NC\NR
> \stoptabulate
>
> \stoptext
>
> Wolfgang
>
>    

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-07-17 13:49 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-17 12:01 Finding values ​​of the context macros inside Lua functions (=expansion inside Lua functions?) Jaroslav Hajtmar
2011-07-17 12:19 ` Wolfgang Schuster
2011-07-17 12:42   ` Jaroslav Hajtmar
2011-07-17 12:53     ` Wolfgang Schuster
2011-07-17 13:10       ` Jaroslav Hajtmar
2011-07-17 13:40         ` Wolfgang Schuster
2011-07-17 13:49           ` Jaroslav Hajtmar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).