about summary refs log tree commit diff stats
path: root/cpp/.traces/break_nested_degenerate2
blob: 6ca10a5c7b4665622f80c809791aee1017a87571 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
parse/0: instruction: 1
parse/0:   ingredient: {name: "0", value: 0, type: 0, properties: [0: literal]}
parse/0:   product: {name: "1", value: 1, type: 1, properties: [1: integer]}
parse/0: label: {
parse/0: instruction: 1
parse/0:   ingredient: {name: "0", value: 0, type: 0, properties: [0: literal]}
parse/0:   product: {name: "2", value: 2, type: 1, properties: [2: integer]}
parse/0: instruction: 25
parse/0: label: {
parse/0: label: }
parse/0: label: }
brace/0: 24: push (open, 1)
brace/0: 24: push (open, 4)
brace/0: push (close, 5)
brace/0: push (close, 6)
after-brace/0: recipe main
after-brace/0: copy ...
after-brace/0: copy ...
after-brace/0: jump 2:offset
run/0: instruction main/0
run/0: ingredient 0 is 0
mem/0: storing in location 1
run/0: instruction main/2
run/0: ingredient 0 is 0
mem/0: storing in location 2
run/0: instruction main/3
run/0: ingredient 0 is 
ng.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
/*
 * $LynxId: LYJustify.h,v 1.8 2009/11/21 15:24:48 tom Exp $
 *
 * Justification for lynx - implemented by Vlad Harchev <hvv@hippo.ru>
 * 11 July 1999
 */

#ifndef LYJUSTIFY_H
#define LYJUSTIFY_H

#include <HTUtils.h>

#ifdef __cplusplus
extern "C" {
#endif
#ifdef USE_JUSTIFY_ELTS
    extern BOOL can_justify_here;
    extern BOOL can_justify_here_saved;

    extern BOOL can_justify_this_line;
    extern int wait_for_this_stacked_elt;
    extern BOOL form_in_htext;

/* this is the element with SGML_EMPTY content, so it won't get on the stack,
 * so we can't trap it with wait_for_this_stacked_elt
 */
    extern BOOL in_DT;

/*disabled by default*/
/*#define DEBUG_JUSTIFY*/
#ifdef DEBUG_JUSTIFY
    extern BOOL can_justify_stack_depth;	/* can be 0 or 1 if all code is correct */

#  define CAN_JUSTIFY_STACK_INC ++can_justify_stack_depth;\
	assert(can_justify_stack_depth < 2 && can_justify_stack_depth >=0 );
#  define CAN_JUSTIFY_STACK_DEC --can_justify_stack_depth;\
	assert(can_justify_stack_depth < 2 && can_justify_stack_depth >=0 );
#else
#  define CAN_JUSTIFY_STACK_INC	/* nothing */
#  define CAN_JUSTIFY_STACK_DEC	/* nothing */
#endif

#define CAN_JUSTIFY_PUSH(x) can_justify_here_saved=can_justify_here;\
	can_justify_here=(x); CAN_JUSTIFY_STACK_INC
#define CAN_JUSTIFY_POP can_justify_here=can_justify_here_saved;\
	CAN_JUSTIFY_STACK_INC
#define CAN_JUSTIFY_SET(x) can_justify_here=(x);

/*
 * This is used to indicate that starting from the current offset in current
 * line justification can take place (in order the gap between some prefix and
 * the word not to be enlarged.
 * For example, when forming OL,
 *     1.21 foo
 * 	   ^justification can start here so that gap between 1.21 and "foo"
 *	   will not be enlarged.
 * This is a macro (that uses 'me').
 */
#define CAN_JUSTIFY_START  mark_justify_start_position(me->text);
#define CANT_JUSTIFY_THIS_LINE can_justify_this_line = FALSE
#define EMIT_IFDEF_USE_JUSTIFY_ELTS(x) x
    /*defined in order not to wrap single line of code  into #ifdef/#endif */

    extern void ht_justify_cleanup(void);
    extern void mark_justify_start_position(void *text);

#else				/* ! USE_JUSTIFY_ELTS */
/*
 * define empty macros so that they can be used without wrapping them in
 * #ifdef USE_JUSTIFY_ELTS/#endif
 */
#define CAN_JUSTIFY_PUSH(x)
#define CAN_JUSTIFY_POP
#define CAN_JUSTIFY_SET(x)
#define CAN_JUSTIFY_START
#define CANT_JUSTIFY_THIS_LINE
#define EMIT_IFDEF_USE_JUSTIFY_ELTS(x)
#endif				/* USE_JUSTIFY_ELTS */
#define CAN_JUSTIFY_PUSH_F CAN_JUSTIFY_PUSH(FALSE)
#ifdef __cplusplus
}
#endif
#endif				/* LYJUSTIFY_H */