cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
See how to use to use Text Explorer to glean valuable information from text data at April 25 webinar.
Choose Language Hide Translation Bar
robot
Level VI

Insert contents of Parse expression rather than variable name into New Script

I am looking to extend @Craige_Hales excellent answer from Insert contents of variable/expression rather than variable name into New Script by combining script, but have not worked out the syntax.  Any ideas to get this to work?

 

I am using JMP 18.1.2

 

Names Default To Here( 1 );

dt = New Table( "My Table" );

e1 = Expr(
	Print( "Run some code." )
);

e2 = Expr(
	Print( "Run some other code." )
);

e3 = Expr(
	Parse( Eval Insert( "\[
	^e1^;
	^e2^;
]\" ) )
);

// These work.
Eval( Eval Expr( dt << New Script( "Test 1", Expr( Name Expr( e1 ) ) ) ) );
Eval( Eval Expr( dt << New Script( "Test 2", Expr( Name Expr( e2 ) ) ) ) );

// This does not work.
Eval( Eval Expr( dt << New Script( "Test 3", Expr( Name Expr( e3 ) ) ) ) );
1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

Re: Insert contents of Parse expression rather than variable name into New Script

Print your e3 to see what it contains

 

Name Expr(e3) = Parse(Eval Insert("
	^e1^;
	^e2^;
"));

This possibly does what you are looking for

 

Names Default To Here(1);

dt = New Table("My Table");

e1 = Expr(Print("Run some code."));

e2 = Expr(
	Print("Run some other code.")
);

e3 = Parse(Eval Insert("\[
	^Name Expr(e1)^;
	^Name Expr(e2)^;
]\"));

Eval(Eval Expr(dt << New Script("Test 3", Expr(Name Expr(e3)))));

I would generally avoid using Parse as it is a nightmare to debug

 

 

Names Default To Here(1);

dt = New Table("My Table");

e1 = Expr(Print("Run some code."));

e2 = Expr(
	Print("Run some other code.")
);

e3 = EvalExpr(
	Expr(Name Expr(e1));
	Expr(Name Expr(e2));
);

Eval(Eval Expr(dt << New Script("Test 3", Expr(Name Expr(e3)))));

 

 

-Jarmo

View solution in original post

2 REPLIES 2
jthi
Super User

Re: Insert contents of Parse expression rather than variable name into New Script

Print your e3 to see what it contains

 

Name Expr(e3) = Parse(Eval Insert("
	^e1^;
	^e2^;
"));

This possibly does what you are looking for

 

Names Default To Here(1);

dt = New Table("My Table");

e1 = Expr(Print("Run some code."));

e2 = Expr(
	Print("Run some other code.")
);

e3 = Parse(Eval Insert("\[
	^Name Expr(e1)^;
	^Name Expr(e2)^;
]\"));

Eval(Eval Expr(dt << New Script("Test 3", Expr(Name Expr(e3)))));

I would generally avoid using Parse as it is a nightmare to debug

 

 

Names Default To Here(1);

dt = New Table("My Table");

e1 = Expr(Print("Run some code."));

e2 = Expr(
	Print("Run some other code.")
);

e3 = EvalExpr(
	Expr(Name Expr(e1));
	Expr(Name Expr(e2));
);

Eval(Eval Expr(dt << New Script("Test 3", Expr(Name Expr(e3)))));

 

 

-Jarmo
robot
Level VI

Re: Insert contents of Parse expression rather than variable name into New Script

Excellent!

Recommended Articles